build: cope with perl not being in /usr/bin/perl
[samba.git] / buildtools / wafsamba / samba_autoproto.py
index ae2eb41a93ed549dba33a07a33c28f4a69d81581..edabc7e44cad963a0f6e7fbfc04f9fbaea1bfb5f 100644 (file)
@@ -8,12 +8,14 @@ def HEIMDAL_AUTOPROTO(bld, header, source, options=None, group='prototypes'):
     bld.SET_BUILD_GROUP(group)
     if options is None:
         options='-q -P comment -o'
-    t = bld(rule='${PERL} ../heimdal/cf/make-proto.pl ${OPTIONS} ${TGT[0].abspath(env)} ${SRC}',
+    SET_TARGET_TYPE(bld, header, 'PROTOTYPE')
+    t = bld(rule='${PERL} ${HEIMDAL}/cf/make-proto.pl ${OPTIONS} ${TGT[0].abspath(env)} ${SRC}',
             source=source,
             target=header,
             on_results=True,
             ext_out='.c',
             before='cc')
+    t.env.HEIMDAL = os.path.join(bld.srcnode.abspath(), 'source4/heimdal')
     t.env.OPTIONS = options
 Build.BuildContext.HEIMDAL_AUTOPROTO = HEIMDAL_AUTOPROTO
 
@@ -27,13 +29,18 @@ Build.BuildContext.HEIMDAL_AUTOPROTO_PRIVATE = HEIMDAL_AUTOPROTO_PRIVATE
 def SAMBA_AUTOPROTO(bld, header, source):
     '''rule for samba prototype generation'''
     bld.SET_BUILD_GROUP('prototypes')
-    bld(
+    relpath = os_path_relpath(bld.curdir, bld.srcnode.abspath())
+    name = os.path.join(relpath, header)
+    SET_TARGET_TYPE(bld, name, 'PROTOTYPE')
+    t = bld(
+        name = name,
         source = source,
         target = header,
         on_results=True,
         ext_out='.c',
         before ='cc',
-        rule = '../script/mkproto.pl --srcdir=.. --builddir=. --public=/dev/null --private=${TGT} ${SRC}'
+        rule = '${SCRIPT}/mkproto.pl --srcdir=.. --builddir=. --public=/dev/null --private=${TGT} ${SRC}'
         )
+    t.env.SCRIPT = os.path.join(bld.srcnode.abspath(), 'source4/script')
 Build.BuildContext.SAMBA_AUTOPROTO = SAMBA_AUTOPROTO