Makefile revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein/*
11e9368a226272085c337e9e74b79808c16fbdbaTinderbox User * C preprocessor library
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater:PACKAGE: ast
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLICENSE = since=1986,author=gsf
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinID = pp
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinDEBUG ==
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIDNAME = "$(ID)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(ID) 2.0 :LIBRARY: BUGS NOTES RELEASE HISTORY pp.3 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pp.h ppfsm.h ppkey.h pplib.h pp.tab \
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User ppargs.c ppbuiltin.c ppcall.c ppcomment.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ppcontext.c ppcontrol.c ppcpp.c ppdata.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pperror.c ppexpr.c ppfsm.c ppincref.c ppinput.c ppkey.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pplex.c ppline.c ppmacref.c ppmisc.c ppop.c pppragma.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ppprintf.c ppproto.c ppsearch.c pptrace.c
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein"hp.pa*" :NOOPTIMIZE: ppfsm.c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein"osf.alpha*" :NOOPTIMIZE: ppcall.c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein"sol*.i386*" :NOOPTIMIZE: ppcpp.c pplex.c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinppdef.h : gentab pp.tab
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(*:N=*gentab:P=A) -d $(*:N=*.tab) > $(<)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinpptab.h : gentab pp.tab
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews $(*:N=*gentab:P=A) -t $(*:N=*.tab) > $(<)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein:INSTALLDIR: gentab ppsym
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeingentab :: gentab.sh
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinppsym :: ppsym.c +last
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein/* MAM workaround */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinif "$(-mam)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.ALL : .INSERT ppsym
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinend
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews$(INCLUDEDIR) :INSTALLPROTO: pp.h ppkey.h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(INCLUDEDIR) :INSTALLDIR: pp.yacc ppkey.yacc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinC $(ID) :PROBE: pp.probe pp.def pp.key ppsym probe.ini
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinprobe.ini : (CC.HOSTTYPE) probe.win32
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User t=$(CC.HOSTTYPE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ifs=$IFS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein IFS=.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein set x $t
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User IFS=$ifs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein t=$2
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein set x $(*)
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User while :
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein do shift
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein case $# in
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User 0) break ;;
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User esac
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein case $1 in
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User *probe.$t)
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User break
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User esac
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User done
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein case $1 in
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User ?*) cmp -s $1 $(<) || cp $1 $(<) ;;
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User *) : > $(<)
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User esac
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.yacc : %.h pp.h
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User $(RM) -f $(<)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(*:N!=$(>):?$(SED) -n -e '/^#define T_TOKEN/p' -e '/^#define N_/p' $(*:N!=$(>))$("\n")??)cat $(>)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } > 1.$(tmp).c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(STDED|ED) $(STDEDFLAGS|EDFLAGS) 1.$(tmp).c <<'!'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein g/^#define N_/m0
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater v/^#define [NT]_/d
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User 1,$s/^#define \(T_[A-Z0-9_]*\).*/&\
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater printf(" \1 %d", \1);/
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater g/^printf.*T_HEADER/d
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User g/^printf.*T_KEYWORD/d
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater g/^printf.*T_TOKCAT/d
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User g/^printf.*T_TOKEN/d
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater 0a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("#")include <stdio.h>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein int
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User main(argc, argv)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein int argc;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein char** argv;
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein printf("%%token /*generated from $(>)*/");
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein printf("\n");
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User return 0;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User .
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User w
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User q
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews !
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(CC.NATIVE|CC) -o $(tmp).exe 1.$(tmp).c
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater ./$(tmp).exe > $(<)
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater $(RM) -f 1.$(tmp).c $(tmp).exe
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinppdebug.h : ppfsm.h ppdef.h pplib.h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein : > 1.$(tmp).c
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews $(STDED|ED) $(STDEDFLAGS|EDFLAGS) 1.$(tmp).c <<'!'
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews r $(*:N=*fsm.h)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 1,/^#define PROTO/-d
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews /^#define LAST/,$d
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews v/^#define/d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein g/PROTOMAIN/d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 1,$s/^#define //
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews 1,$s/[^A-Za-z0-9_].*//
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 1,$s/.*/ "&", &,/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 1i
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews $("/")*
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein * preprocessor library debug maps
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein *$("/")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein struct map
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein char* nam;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein long val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein static struct map pplexmap[] =
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ka
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein r $(*:N=*def.h)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,/^#define ADD/-d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /^$/,$d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/^#define //
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/[ ].*//
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/.*/ "&", &,/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")aa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein static struct map ppstatemap[] =
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ka
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein r $(*:N=*def.h)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,/^#define ALLMULTIPLE/-d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /^$/,$d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/^#define //
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/[ ].*//
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/.*/ "&", &,/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")aa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein static struct map ppmodemap[] =
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ka
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein r $(*:N=*def.h)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,/^#define ELSEIF/-d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /^$/,$d
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/^#define //
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $("'")a+1,$s/[ ].*//
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")a+1,$s/.*/ "&", &,/
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")aa
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews static struct map ppoptionmap[] =
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews {
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews .
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $a
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews };
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews .
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews ka
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews r $(*:N=*lib.h)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")a+1,/^#define IN_BUFFER/-d
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews /^$/,$d
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")a+1,$s/^#define IN_//
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")a+1,$s/[ ].*//
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")a+1,$s/.*/ "&", IN_&,/
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $("'")aa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein static struct map ppinmap[] =
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein .
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein w
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein q
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein !
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if $(CMP) -s 1.$(tmp).c $(<)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein then $(RM) -f 1.$(tmp).c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein else $(MV) 1.$(tmp).c $(<)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fi
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater