diff options
Diffstat (limited to 'ipl/Makefile')
-rw-r--r-- | ipl/Makefile | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/ipl/Makefile b/ipl/Makefile new file mode 100644 index 0000000..a438946 --- /dev/null +++ b/ipl/Makefile @@ -0,0 +1,81 @@ +# Makefile for the Icon Program Library + + +All: Ilib Ibin + + +# Make a library distribution (portable ucode and include files). + +Ilib: cfuncs/libcfunc.so +cfuncs/libcfunc.so: ../bin/icont + cp incl/*.icn gincl/*.icn cfuncs/icall.h ../lib + cd procs; LPATH= ../../bin/icont -usc *.icn; mv *.u? ../../lib + cd gprocs; LPATH= ../../bin/icont -usc *.icn; mv *.u? ../../lib + if grep '^ *# *define LoadFunc' ../src/h/define.h >/dev/null; \ + then $(MAKE) Cfunctions; fi + + +# Make C functions. Only called if LoadFunc is defined. + +Cfunctions: + cd cfuncs; LPATH= $(MAKE) ICONT=../../bin/icont + cp cfuncs/*.u? ../lib + cp cfuncs/libcfunc.so ../bin + + +# Make selected graphics program binaries (platform-dependent icode) +# for ../bin, given that ../lib is ready + +Ibin: gpacks/vib/vib +gpacks/vib/vib: ../bin/icont + MAKE=$(MAKE) ./BuildBin + + +# Make a full set of program binaries (not usually done) in ./iexe, +# given that ../lib is ready + +Iexe: + rm -f iexe/* + MAKE=$(MAKE) ./BuildExe + + +# Check for undefined identifiers in ../lib. +# (A few are expected: references to Mp, program, init, goal). + +Undef: + cd ../lib; for f in *.u2; do (echo $$f; icont -us -fs $$f); done + + +# Check for stray files + +Strays: + for d in *procs *progs *incl; do (cd $$d; pwd; gcomp CVS *.icn); done + + +# Verify that all procedures and programs build, including packs, +# and perform some other sanity checks + +Check: + ./CheckAll + + +# Make Zip files for separate distribution of the library + +ZipFiles: Ilib + rm -rf ilib *.zip + zip -qrX9 bipl.zip docs incl procs progs packs data cfuncs -x '*/CVS/*' + zip -qrX9 gipl.zip gdocs gincl gprocs gprogs gpacks gdata -x '*/CVS/*' + zip -qrX9 mipl.zip mincl mprocs mprogs -x '*/CVS/*' + mkdir ilib + cp ../lib/*.* ilib + zip -qrX9 ilib.zip ilib + rm -rf ilib + + +# Clean up. + +Clean Pure: + -rm -rf ilib iexe *.zip */*.u[12] */*.zip */*.so + -rm -f xx `find *procs *progs -type f -perm -100 -print` + for d in cfuncs *packs/[abcdefghijklmnopqrstuvwxyz]*; do \ + (cd $$d; $(MAKE) Clean); done |