123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- # This file is part of the software similarity tester SIM.
- # Written by Dick Grune, Vrije Universiteit, Amsterdam.
- # $Id: Makefile,v 2.17 2007/08/27 09:57:31 dick Exp $
- #
- # E N T R Y P O I N T S
- test_sim:
- help:
- @echo 'Entry points:'
- @echo 'test_sim: compile sim_c and run a simple test (default)'
- @echo ''
- @echo 'all: create all binaries'
- @echo 'sim_X(.exe): create specific binary for language X'
- @echo 'install_all: install all binaries'
- @echo 'install.sim_X: install specific binary for language X'
- @echo 'where X is one of c, java, pasc, m2, lisp, mira, text'
- @echo ''
- @echo 'lint: lint sim_c sources'
- @echo 'lint.all: lint all sim sources'
- @echo 'simsim: run sim on the sim sources'
- @echo ''
- @echo 'simsrc.shr: create sources shar file'
- @echo 'simsrc.zip: create sources zip file'
- @echo 'depend: update dependencies in Makefile'
- @echo 'clean: remove created files'
- @echo ''
- @echo 'sim_exes: create DOS executables in MSDOS; set date; make clean'
- @echo 'simexe.zip: create DOS executables package in UNIX'
- @echo 'VERSION=2.X install_ftp: install in the FTP directory in UNIX'
- VERSION = 2_21
- #
- # When you modify any of the following flags, do 'make clean'
- #
- include sysidf.mk
- # Flags
- OPTLEVEL = -O4# #
- CFLAGS = $(SYSTEM) $(OPTLEVEL) $(TESTTOKEN)
- LFLAGS = # # loader flags
- TESTTOKEN = #-DTESTTOKEN# # define to test the token type
- # T E S T P A R A M E T E R S
- # Parameters for two simple test runs, sim.res and stream.res:
- TEST_LANG = c# # to test sim_X for language X
- TEST_OPT = -f -r 20# # options to sim_X
- TEST_INP = pass3.c# # guinea pig input
- TEST_OPT = -p# # options to sim_X
- TEST_INP = *.l# # guinea pig input
- TEST_INP = simple*# # guinea pig input
- # I N T R O D U C T I O N
- # Each module (set of programs that together perform some function)
- # has the following sets of files defined for it:
- # _FLS all files of that module, for, e.g.,
- # sharring, inventory, etc.
- # _SRC the source files, from which other files derive
- # _CFS the C-files, from which the object files derive
- # _OBJ object files
- # _GRB garbage files produced by compiling the module
- #
- # (This is a feeble attempt at software-engineering a Makefile.)
- #
- test_sim: sim.res stream.res # two simple tests
- # B I N A R I E S
- BINARIES = sim_c$(EXE) sim_java$(EXE) sim_pasc$(EXE) \
- sim_m2$(EXE) sim_lisp$(EXE) sim_mira$(EXE) \
- sim_text$(EXE)
- all: $(BINARIES)
- # C O M P I L A T I O N R U L E S
- .SUFFIXES: .o
- .c.o:
- $(CC) -c $(CFLAGS) $<
- # A U X I L I A R Y M O D U L E S
- # Common modules:
- COM_CFS = token.c lex.c stream.c text.c tokenarray.c error.c
- COM_OBJ = token.o lex.o stream.o text.o tokenarray.o error.o
- COM_SRC = token.h lex.h stream.h text.h tokenarray.h error.h \
- lang.h language.h \
- sortlist.spc sortlist.bdy system.par $(COM_CFS)
- COM_FLS = $(COM_SRC)
- # The idf module:
- IDF_CFS = idf.c
- IDF_OBJ = idf.o
- IDF_SRC = idf.h $(IDF_CFS)
- IDF_FLS = $(IDF_SRC)
- # The runs package:
- RUNS_CFS = runs.c percentages.c
- RUNS_OBJ = runs.o percentages.o
- RUNS_SRC = runs.h percentages.h $(RUNS_CFS)
- RUNS_FLS = $(RUNS_SRC) aiso.spc aiso.bdy
- # The main program:
- MAIN_CFS = sim.c options.c pass1.c hash.c compare.c add_run.c \
- pass2.c pass3.c
- MAIN_OBJ = sim.o options.o pass1.o hash.o compare.o add_run.o \
- pass2.o pass3.o
- MAIN_SRC = sim.h options.h pass1.h hash.h compare.h add_run.h \
- pass2.h pass3.h \
- debug.par settings.par $(MAIN_CFS)
- MAIN_FLS = $(MAIN_SRC)
- # The similarity tester without the language part:
- SIM_CFS = $(COM_CFS) $(IDF_CFS) $(RUNS_CFS) $(MAIN_CFS)
- SIM_OBJ = $(COM_OBJ) $(IDF_OBJ) $(RUNS_OBJ) $(MAIN_OBJ)
- SIM_SRC = $(COM_SRC) $(IDF_SRC) $(RUNS_SRC) $(MAIN_SRC)
- SIM_FLS = $(COM_FLS) $(IDF_FLS) $(RUNS_FLS) $(MAIN_FLS)
- # L A N G U A G E S
- # The algollike module:
- ALG_CFS = algollike.c
- ALG_OBJ = algollike.o
- ALG_SRC = algollike.h $(ALG_CFS)
- ALG_FLS = $(ALG_SRC)
- # The C Language module: C
- CLANG_CFS = clang.c
- CLANG_OBJ = clang.o
- CLANG_SRC = clang.l
- CLANG_FLS = $(CLANG_SRC)
- clang.c: clang.l
- $(LEX) -t clang.l >$@
- SIM_C_CFS = $(SIM_CFS) $(ALG_CFS) $(CLANG_CFS)
- SIM_C_OBJ = $(SIM_OBJ) $(ALG_OBJ) $(CLANG_OBJ)
- sim_c$(EXE): $(SIM_C_OBJ)
- $(CC) $(LFLAGS) $(SIM_C_OBJ) -o $@
- SIM_C_GRB = clang.c sim_c
- install.sim_c: $(BINDIR)/sim_c$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_c$(EXE): sim_c$(EXE)
- $(COPY) sim_c$(EXE) $@
- # The Java Language module: Java
- JAVALANG_CFS = javalang.c
- JAVALANG_OBJ = javalang.o
- JAVALANG_SRC = javalang.l
- JAVALANG_FLS = $(JAVALANG_SRC)
- javalang.c: javalang.l
- $(LEX) -t javalang.l >$@
- SIM_JAVA_CFS = $(SIM_CFS) $(ALG_CFS) $(JAVALANG_CFS)
- SIM_JAVA_OBJ = $(SIM_OBJ) $(ALG_OBJ) $(JAVALANG_OBJ)
- sim_java$(EXE): $(SIM_JAVA_OBJ)
- $(CC) $(LFLAGS) $(SIM_JAVA_OBJ) -o $@
- SIM_JAVA_GRB = javalang.c sim_java
- install.sim_java: $(BINDIR)/sim_java$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_java$(EXE): sim_java$(EXE)
- $(COPY) sim_java$(EXE) $@
- # The Pascal Language module: Pascal
- PASCLANG_CFS = pascallang.c
- PASCLANG_OBJ = pascallang.o
- PASCLANG_SRC = pascallang.l
- PASCLANG_FLS = $(PASCLANG_SRC)
- pascallang.c: pascallang.l
- $(LEX) -t pascallang.l >pascallang.c
- SIM_PASC_CFS = $(SIM_CFS) $(ALG_CFS) $(PASCLANG_CFS)
- SIM_PASC_OBJ = $(SIM_OBJ) $(ALG_OBJ) $(PASCLANG_OBJ)
- sim_pasc$(EXE): $(SIM_PASC_OBJ)
- $(CC) $(LFLAGS) $(SIM_PASC_OBJ) -o $@
- SIM_PASC_GRB = pascallang.c sim_pasc
- install.sim_pasc: $(BINDIR)/sim_pasc$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_pasc$(EXE): sim_pasc$(EXE)
- $(COPY) sim_pasc$(EXE) $@
- # The Modula-2 Language module: Modula-2
- M2LANG_CFS = m2lang.c
- M2LANG_OBJ = m2lang.o
- M2LANG_SRC = m2lang.l
- M2LANG_FLS = $(M2LANG_SRC)
- m2lang.c: m2lang.l
- $(LEX) -t m2lang.l >$@
- SIM_M2_CFS = $(SIM_CFS) $(ALG_CFS) $(M2LANG_CFS)
- SIM_M2_OBJ = $(SIM_OBJ) $(ALG_OBJ) $(M2LANG_OBJ)
- sim_m2$(EXE): $(SIM_M2_OBJ)
- $(CC) $(LFLAGS) $(SIM_M2_OBJ) -o $@
- SIM_M2_GRB = m2lang.c sim_m2
- install.sim_m2: $(BINDIR)/sim_m2$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_m2$(EXE): sim_m2$(EXE)
- $(COPY) sim_m2$(EXE) $@
- # The Lisp Language module: Lisp
- LISPLANG_CFS = lisplang.c
- LISPLANG_OBJ = lisplang.o
- LISPLANG_SRC = lisplang.l
- LISPLANG_FLS = $(LISPLANG_SRC)
- lisplang.c: lisplang.l
- $(LEX) -t lisplang.l >$@
- SIM_LISP_CFS = $(SIM_CFS) $(ALG_CFS) $(LISPLANG_CFS)
- SIM_LISP_OBJ = $(SIM_OBJ) $(ALG_OBJ) $(LISPLANG_OBJ)
- sim_lisp$(EXE): $(SIM_LISP_OBJ)
- $(CC) $(LFLAGS) $(SIM_LISP_OBJ) -o $@
- SIM_LISP_GRB = lisplang.c sim_lisp
- install.sim_lisp: $(BINDIR)/sim_lisp$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_lisp$(EXE): sim_lisp$(EXE)
- $(COPY) sim_lisp$(EXE) $@
- # The Miranda Language module: Miranda
- MIRALANG_CFS = miralang.c
- MIRALANG_OBJ = miralang.o
- MIRALANG_SRC = miralang.l
- MIRALANG_FLS = $(MIRALANG_SRC)
- miralang.c: miralang.l
- $(LEX) -t miralang.l >$@
- SIM_MIRA_CFS = $(SIM_CFS) $(ALG_CFS) $(MIRALANG_CFS)
- SIM_MIRA_OBJ = $(SIM_OBJ) $(ALG_OBJ) $(MIRALANG_OBJ)
- sim_mira$(EXE): $(SIM_MIRA_OBJ)
- $(CC) $(LFLAGS) $(SIM_MIRA_OBJ) -o $@
- SIM_MIRA_GRB = miralang.c sim_mira
- install.sim_mira: $(BINDIR)/sim_mira$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_mira$(EXE): sim_mira$(EXE)
- $(COPY) sim_mira$(EXE) $@
- # The Text module: Text
- TEXTLANG_CFS = textlang.c
- TEXTLANG_OBJ = textlang.o
- TEXTLANG_SRC = textlang.l
- TEXTLANG_FLS = $(TEXTLANG_SRC)
- textlang.c: textlang.l
- $(LEX) -t textlang.l >$@
- SIM_TEXT_CFS = $(SIM_CFS) $(TEXTLANG_CFS)
- SIM_TEXT_OBJ = $(SIM_OBJ) $(TEXTLANG_OBJ)
- sim_text$(EXE): $(SIM_TEXT_OBJ)
- $(CC) $(LFLAGS) $(SIM_TEXT_OBJ) -o $@
- SIM_TEXT_GRB = textlang.c sim_text
- install.sim_text: $(BINDIR)/sim_text$(EXE) $(MANDIR)/sim.1
- $(BINDIR)/sim_text$(EXE): sim_text$(EXE)
- $(COPY) sim_text$(EXE) $@
- # T E S T S
- # Some simple tests:
- sim.res: sim_$(TEST_LANG)$(EXE) $(TEST_INP)
- ./sim_$(TEST_LANG)$(EXE) $(TEST_OPT) $(TEST_INP)
- # ./sim_$(TEST_LANG)$(EXE) -x $(TEST_OPT) $(TEST_INP)
- stream.res: sim_$(TEST_LANG)$(EXE) $(TEST_INP)
- ./sim_$(TEST_LANG)$(EXE) -- $(TEST_INP) >stream.res
- wc stream.res $(TEST_INP)
- TEST_GRB = stream.res
- # More simple tests, on the C version only:
- simsim: sim_c$(EXE) $(SRC)
- ./sim_c$(EXE) -fr 20 $(SRC)
- # Lint
- lint: $(SIM_C_CFS)
- $(LINT) $(LINTFLAGS) $(SIM_C_CFS) | grep -v yy
- lint.all: $(SIM_C_CFS) $(SIM_JAVA_CFS) $(SIM_PASC_CFS) $(SIM_M2_CFS) \
- $(SIM_LISP_CFS) $(SIM_MIRA_CFS) $(SIM_TEXT_CFS)
- $(LINT) $(LINTFLAGS) $(SIM_C_CFS) | grep -v yy
- $(LINT) $(LINTFLAGS) $(SIM_JAVA_CFS) | grep -v yy
- $(LINT) $(LINTFLAGS) $(SIM_PASC_CFS) | grep -v yy
- $(LINT) $(LINTFLAGS) $(SIM_M2_CFS) | grep -v yy
- $(LINT) $(LINTFLAGS) $(SIM_LISP_CFS) | grep -v yy
- $(LINT) $(LINTFLAGS) $(SIM_MIRA_CFS) | grep -v yy
- $(LINT) $(LINTFLAGS) $(SIM_TEXT_CFS) | grep -v yy
- # O T H E R E N T R I E S
- # Sets of files: general, modules, main programs, languages
- CFS = $(SIM_CFS) $(ALG_CFS) \
- $(CLANG_CFS) $(JAVALANG_CFS) $(PASCLANG_CFS) $(M2LANG_CFS) \
- $(LISPLANG_CFS) $(MIRALANG_CFS) $(TEXTLANG_CFS)
- OBJ = $(SIM_OBJ) $(ALG_OBJ) \
- $(CLANG_OBJ) $(JAVALANG_OBJ) $(PASCLANG_OBJ) $(M2LANG_OBJ) \
- $(LISPLANG_OBJ) $(MIRALANG_OBJ) $(TEXTLANG_OBJ)
- SRC = $(SIM_SRC) $(ALG_SRC) \
- $(CLANG_SRC) $(JAVALANG_SRC) $(PASCLANG_SRC) $(M2LANG_SRC) \
- $(LISPLANG_SRC) $(MIRALANG_SRC) $(TEXTLANG_SRC)
- FLS = $(SIM_FLS) $(ALG_FLS) \
- $(CLANG_FLS) $(JAVALANG_FLS) $(PASCLANG_FLS) $(M2LANG_FLS) \
- $(LISPLANG_FLS) $(MIRALANG_FLS) $(TEXTLANG_FLS) \
- sysidf.mk sysidf.msdos sysidf.unix
- DOC = READ_ME READ.ME README.1st sim.1 sim.txt sim.html \
- ChangeLog Answers TechnReport
- ALL_FLS = Makefile $(FLS) $(DOC)
- # Create .EXE archive for MSDOS
- SIM_EXES = sim_c.exe sim_java.exe sim_pasc.exe sim_m2.exe \
- sim_lisp.exe sim_mira.exe sim_text.exe
- DOSZIP = READ.ME sim.txt $(SIM_EXES)
- sim_exes: $(SIM_EXES)
- simexe.zip: $(DOSZIP)
- $(ZIP) $@ $(DOSZIP)
- DOS_GRB = simexe.zip
- # Install and clean scripts
- install_all: install # just a synonym
- install: install.sim_c install.sim_java install.sim_pasc \
- install.sim_m2 install.sim_lisp install.sim_mira \
- install.sim_text
- $(MANDIR)/sim.1: sim.1
- $(COPY) sim.1 $@
- FTPFILES = README.1st READ_ME LICENSE.txt TechnReport
- install_ftp: $(FTPFILES) simsrc.shr simexe.zip sim.pdf
- cp -p simsrc.shr sim_$(VERSION).shar
- cp -p simexe.zip sim_$(VERSION).zip
- cp -p $(FTPFILES) sim_$(VERSION).shar sim_$(VERSION).zip \
- README.1st READ.ME READ_ME sim.pdf \
- $(FTPDIR)/.
- rm -f sim_$(VERSION).shar sim_$(VERSION).zip
- ls -l $(FTPDIR)/.
- simsrc.shr: $(ALL_FLS)
- shar $(ALL_FLS) >$@
- simsrc.zip: $(ALL_FLS)
- $(ZIP) $@ $(ALL_FLS)
- sim.txt: sim.1
- nroff -man sim.1 | sed 's/.//g' >$@
- sim.pdf: sim.1
- troff -man sim.1 | devps | ps2pdf -sPAPERSIZE=a4 - $@
- INSTALL_GRB = simsrc.shr simsrc.zip sim.txt sim.pdf
- depend: $(CFS)
- makedepend -w 1 -Dlint $(CFS)
- .PHONY: clean fresh
- clean:
- -rm -f *.o
- -rm -f $(SIM_C_GRB)
- -rm -f $(SIM_JAVA_GRB)
- -rm -f $(SIM_PASC_GRB)
- -rm -f $(SIM_M2_GRB)
- -rm -f $(SIM_LISP_GRB)
- -rm -f $(SIM_MIRA_GRB)
- -rm -f $(SIM_TEXT_GRB)
- -rm -f $(TEST_GRB)
- -rm -f $(INSTALL_GRB)
- -rm -f a.out a.exe sim.txt core mon.out
- fresh: clean
- -rm -f $(DOS_GRB)
- -rm -f *.exe
- # D E P E N D E N C I E S
- # DO NOT DELETE THIS LINE -- make depend depends on it.
- token.o: token.h
- lex.o: token.h
- lex.o: lex.h
- stream.o: system.par
- stream.o: token.h
- stream.o: lex.h
- stream.o: lang.h
- stream.o: stream.h
- text.o: debug.par
- text.o: sim.h
- text.o: token.h
- text.o: stream.h
- text.o: lex.h
- text.o: options.h
- text.o: error.h
- text.o: text.h
- tokenarray.o: error.h
- tokenarray.o: lex.h
- tokenarray.o: token.h
- tokenarray.o: tokenarray.h
- error.o: sim.h
- error.o: error.h
- idf.o: system.par
- idf.o: token.h
- idf.o: idf.h
- runs.o: sim.h
- runs.o: runs.h
- runs.o: aiso.spc
- runs.o: aiso.bdy
- percentages.o: sim.h
- percentages.o: runs.h
- percentages.o: aiso.spc
- percentages.o: error.h
- percentages.o: percentages.h
- percentages.o: sortlist.bdy
- sim.o: settings.par
- sim.o: sim.h
- sim.o: options.h
- sim.o: language.h
- sim.o: token.h
- sim.o: error.h
- sim.o: hash.h
- sim.o: compare.h
- sim.o: pass1.h
- sim.o: pass2.h
- sim.o: pass3.h
- sim.o: stream.h
- sim.o: lex.h
- options.o: options.h
- pass1.o: debug.par
- pass1.o: sim.h
- pass1.o: text.h
- pass1.o: tokenarray.h
- pass1.o: token.h
- pass1.o: lex.h
- pass1.o: error.h
- pass1.o: pass1.h
- hash.o: system.par
- hash.o: debug.par
- hash.o: sim.h
- hash.o: error.h
- hash.o: language.h
- hash.o: token.h
- hash.o: tokenarray.h
- hash.o: options.h
- hash.o: hash.h
- compare.o: sim.h
- compare.o: tokenarray.h
- compare.o: token.h
- compare.o: hash.h
- compare.o: language.h
- compare.o: options.h
- compare.o: add_run.h
- compare.o: compare.h
- add_run.o: sim.h
- add_run.o: runs.h
- add_run.o: aiso.spc
- add_run.o: percentages.h
- add_run.o: options.h
- add_run.o: error.h
- add_run.o: add_run.h
- pass2.o: debug.par
- pass2.o: sim.h
- pass2.o: text.h
- pass2.o: lex.h
- pass2.o: token.h
- pass2.o: pass2.h
- pass2.o: sortlist.bdy
- pass3.o: system.par
- pass3.o: debug.par
- pass3.o: sim.h
- pass3.o: runs.h
- pass3.o: aiso.spc
- pass3.o: error.h
- pass3.o: options.h
- pass3.o: pass3.h
- pass3.o: percentages.h
- pass3.o: tokenarray.h
- pass3.o: token.h
- algollike.o: options.h
- algollike.o: token.h
- algollike.o: algollike.h
- algollike.o: language.h
- clang.o: options.h
- clang.o: algollike.h
- clang.o: language.h
- clang.o: token.h
- clang.o: idf.h
- clang.o: lex.h
- clang.o: lang.h
- javalang.o: options.h
- javalang.o: algollike.h
- javalang.o: language.h
- javalang.o: token.h
- javalang.o: idf.h
- javalang.o: lex.h
- javalang.o: lang.h
- pascallang.o: options.h
- pascallang.o: algollike.h
- pascallang.o: language.h
- pascallang.o: token.h
- pascallang.o: idf.h
- pascallang.o: lex.h
- pascallang.o: lang.h
- m2lang.o: options.h
- m2lang.o: algollike.h
- m2lang.o: language.h
- m2lang.o: token.h
- m2lang.o: idf.h
- m2lang.o: lex.h
- m2lang.o: lang.h
- lisplang.o: language.h
- lisplang.o: token.h
- lisplang.o: lex.h
- lisplang.o: lang.h
- lisplang.o: idf.h
- miralang.o: language.h
- miralang.o: token.h
- miralang.o: lex.h
- miralang.o: lang.h
- miralang.o: idf.h
- textlang.o: language.h
- textlang.o: token.h
- textlang.o: idf.h
- textlang.o: lex.h
- textlang.o: lang.h
|