/*
* NOTE: this provides ast enhanced versions of INIT executables
*/
:PACKAGE: ast
LICENSE = since=1990,author=gsf
.SOURCE.c : ../INIT ../../lib/libpp
proto :: RELEASE PROMO.mm proto.c
mamake :: mamake.c LICENSE=since=1999,author=gsf
ratz :: ratz.c
release :: release.c LICENSE=since=1999,author=gsf
sear :: sear.sh LICENSE=since=2001,author=dgk+gsf
changes :: changes.sh LICENSE=since=2005,author=gsf
$(LIBDIR)/sear :INSTALLDIR: ratz.c sear.ico sear32.ico sear64.ico
:TEST: proto
/*
* ../INIT/proto.c is snarfed from the standalone src
* this is a gross hack to allow only one copy of the source
*/
if ! "$(-mam)"
../INIT/proto.c :INSTALL: .SCAN.NULL proto.c
if grep '^#pragma prototyped' $(*) >/dev/null 2>/dev/null
then {
echo "#define __PROTO__(x) x"
echo "#define __MANGLE__"
$(SED) \
-e '/\/\*DELAY_CONTROL\*\//,/\/\*NODELAY_CONTROL\*\//s/^#/DELAY_CONTROL /' \
-e '/\/\*DELAY_CONTROL\*\//s/^/#define DELAY_CONTROL # \
#undef __STDC__/' \
-e '/\/\*NODELAY_CONTROL\*\//s/^/#undef DELAY_CONTROL /' \
$(*)
} > a.$(tmp).c
$(CPP) $(CPPFLAGS) -I$(INSTALLROOT)/include/ast -DPROTO_STANDALONE -D-F$(*) -D-L -I-D -E a.$(tmp).c |
$(SED) -e 's%".*/src/cmd/proto/%"%' -e 's%".*/src/cmd/%"../%' -e 's%".*/src/lib/%"../../lib/%' |
$(PROTO) $(PROTOFLAGS:N!=-s) -f > b.$(tmp).c
if test '' != '$(<:P=L*:O=N)' && $(CMP) -s b.$(tmp).c $(<:P=L*:O=N)
then : no changes for $(<) :
elif $(CC) -o b.$(tmp).x b.$(tmp).c
then $(CP) b.$(tmp).c $(<)
else : retain original $(<) :
fi
$(RM) -f ?.$(tmp).?
fi
end