summaryrefslogtreecommitdiffstats
path: root/buildtools/wafadmin/Tools/ar.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildtools/wafadmin/Tools/ar.py')
-rw-r--r--buildtools/wafadmin/Tools/ar.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/buildtools/wafadmin/Tools/ar.py b/buildtools/wafadmin/Tools/ar.py
new file mode 100644
index 00000000000..af9b17fd6e9
--- /dev/null
+++ b/buildtools/wafadmin/Tools/ar.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2006-2008 (ita)
+# Ralf Habacker, 2006 (rh)
+
+"ar and ranlib"
+
+import os, sys
+import Task, Utils
+from Configure import conftest
+
+ar_str = '${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}'
+cls = Task.simple_task_type('static_link', ar_str, color='YELLOW', ext_in='.o', ext_out='.bin', shell=False)
+cls.maxjobs = 1
+cls.install = Utils.nada
+
+# remove the output in case it already exists
+old = cls.run
+def wrap(self):
+ try: os.remove(self.outputs[0].abspath(self.env))
+ except OSError: pass
+ return old(self)
+setattr(cls, 'run', wrap)
+
+def detect(conf):
+ conf.find_program('ar', var='AR')
+ conf.find_program('ranlib', var='RANLIB')
+ conf.env.ARFLAGS = 'rcs'
+
+@conftest
+def find_ar(conf):
+ v = conf.env
+ conf.check_tool('ar')
+ if not v['AR']: conf.fatal('ar is required for static libraries - not found')
+
+