--- Makefile.orig Wed Jan 17 13:17:06 2001 +++ Makefile Thu May 24 15:51:01 2001 @@ -14,29 +14,25 @@ # Directory for Standard .qcl files -QCLDIR = /usr/local/lib/qcl +QCLDIR = ${PREFIX}/share/qcl # Path for qcl binaries -QCLBIN = /usr/local/bin +QCLBIN = ${PREFIX}/bin # Debugging options -DEBUG = -g -DQCL_DEBUG -DQC_DEBUG -#DEBUG = -O2 +DEBUG = -O2 # Comment out if you don't have GNU readline on your system # explicit linking against libtermcap or libncurses may be required RLOPT = -DQCL_USE_READLINE -#RLLIB = -lreadline -RLLIB = -lreadline -lncurses +RLLIB = -lreadline # Replace with lex and yacc on non-GNU systems (untested) -LEX = flex -YACC = bison -INSTALL = install +INSTALL = install -c ##### You shouldn't have to edit the stuff below ##### @@ -44,13 +40,15 @@ QCLIB = $(QCDIR)/libqc.a QCLINC = lib -CC = g++ -CPP = $(CC) -E -CFLAGS = -c -Wall $(DEBUG) $(RLOPT) -I$(QCDIR) -DDEF_INCLUDE_PATH="\"$(QCLDIR)\"" -LFLAGS = -L$(QCDIR) $(DEBUG) -lm -lfl -lqc $(RLLIB) +CXXFLAGS += -Wall $(DEBUG) $(RLOPT) -I$(QCDIR) -I${PREFIX}/include -DDEF_INCLUDE_PATH="\"$(QCLDIR)\"" +LDFLAGS += -L$(QCDIR) $(DEBUG) -L${PREFIX}/lib -lgnugetopt -lm -lfl -lqc $(RLLIB) + +FILESCC = debug.cc error.cc eval.cc exec.cc extern.cc lex.cc \ + options.cc parse.cc print.cc qcl.cc quheap.cc symbols.cc \ + syntax.cc typcheck.cc types.cc yacc.cc +FILESH = debug.h error.h extern.h options.h parse.h quheap.h \ + symbols.h syntax.h types.h yacc.h -FILESCC = $(wildcard *.cc) -FILESH = $(wildcard *.h) SOURCE = $(FILESCC) $(FILESH) qcl.lex qcl.y Makefile @@ -58,23 +56,11 @@ lex.o yacc.o print.o quheap.o extern.o eval.o exec.o \ parse.o options.o debug.o -all: do-it-all +all: build + -ifeq (.depend,$(wildcard .depend)) -include .depend -do-it-all: build -else -do-it-all: dep - make -endif - -#### Rules for depend - -dep: lex.cc yacc.cc yacc.h $(QCLIB) - for i in *.cc; do \ - $(CPP) -I$(QCDIR) -MM $$i; \ - echo -e '\t$(CC) $(CFLAGS)' $$i '\n'; \ - done > .depend +dep: $(FILESCC) $(FILESH) + $(CXX) -M $(CXXFLAGS) $(FILESCC) >.depend lex.cc: qcl.lex $(LEX) -olex.cc qcl.lex @@ -86,24 +72,24 @@ mv yacc.cc.h yacc.h $(QCLIB): - cd $(QCDIR) && make libqc.a + cd $(QCDIR) && $(MAKE) $(MAKEFLAGS) libqc.a #### Rules for build build: qcl $(QCLINC)/default.qcl qcl: $(OBJECTS) qcl.o $(QCLIB) - $(CC) $(OBJECTS) qcl.o $(LFLAGS) -o qcl + $(CXX) $(OBJECTS) qcl.o $(LDFLAGS) -o qcl qcl-static: $(OBJECTS) qcl.o $(QCLIB) - $(CC) -static $(OBJECTS) qcl.o $(LFLAGS) -o qcl-static + $(CXX) -static $(OBJECTS) qcl.o $(LDFLAGS) -o qcl-static strip qcl-static $(QCLINC)/default.qcl: extern.cc grep "^//!" extern.cc | cut -c5- > $(QCLINC)/default.qcl install: build - $(INSTALL) -m 0755 -d $(QCLBIN) $(QCLDIR) + umask 022; mkdir -p $(QCLDIR); chmod 0755 $(QCLDIR) $(INSTALL) -m 0755 ./qcl $(QCLBIN) $(INSTALL) -m 0644 ./lib/default.qcl $(QCLDIR) $(INSTALL) -m 0644 ./lib/dft.qcl $(QCLDIR) @@ -115,6 +101,7 @@ $(INSTALL) -m 0644 ./lib/roulette.qcl $(QCLDIR) $(INSTALL) -m 0644 ./lib/shor.qcl $(QCLDIR) $(INSTALL) -m 0644 ./lib/swap.qcl $(QCLDIR) + $(INSTALL) -m 0644 ./lib/grover.qcl $(QCLDIR) #### Other Functions