# ============================================================================= # Makefile for qcompiler # ============================================================================= .SUFFIXES: .cpp all: qcrun qcpp # Binary file name BINNAME=qcrun BINNAME2=qcpp # Normal compiler CC=g++ # Where to install INSTDIR = ~/bin # Compile options PATH_ROOT = ../calcunits PATH_UNITS = ../calcunits PATH_LIB = ../qclib IFLAGS = -I. -I${PATH_ROOT} -I${PATH_UNITS} #CFLAGS = -mno-cygwin -Wall -O4 CFLAGS = -Wall #CFLAGS = -O2 LFLAGS = -lm # ----------------------------------------------------------------------------- # Compiler # ----------------------------------------------------------------------------- QCompiler.o: QCompiler.cpp QCompiler.h QParseInfo.h ${CC} ${IFLAGS} ${CFLAGS} -c QCompiler.cpp -o QCompiler.o QCompilerCntl.o: QCompilerCntl.cpp QCompilerCntl.h QCompiler.h QParseInfo.h ${PATH_UNITS}/QCalcUnit.h ${QC_UNITS_H} ${CC} ${IFLAGS} ${CFLAGS} -c QCompilerCntl.cpp -o QCompilerCntl.o QParseInfo.o: QParseInfo.h ${CC} ${IFLAGS} ${CFLAGS} -c QParseInfo.cpp -o QParseInfo.o QBits.o: ${PATH_ROOT}/QBits.cpp ${PATH_ROOT}/QBits.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_ROOT}/QBits.cpp -o QBits.o QCalcManager.o: ${PATH_ROOT}/QCalcManager.cpp ${PATH_ROOT}/QCalcManager.h QCompilerCntl.h ${PATH_ROOT}/QBits.h ${PATH_UNITS}/QCalcUnit.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_ROOT}/QCalcManager.cpp -o QCalcManager.o QCompilerCode.o: QCompilerCode.cpp QCompilerCode.h QCompiler.h QParseInfo.h $(CC) $(IFLAGS) $(CFLAGS) -c QCompilerCode.cpp -o QCompilerCode.o qcrun.o: qcrun.cpp ${PATH_ROOT}/QBits.h ${PATH_ROOT}/QCalcManager.h ${CC} ${IFLAGS} ${CFLAGS} -c qcrun.cpp -o qcrun.o qcpp.o: qcpp.cpp QCompilerCode.h QCompiler.h $(CC) $(IFLAGS) $(CFLAGS) -c qcpp.cpp -o qcpp.o # ----------------------------------------------------------------------------- $(BINNAME): qcrun.o QCalcManager.o QCompiler.o QCompilerCntl.o QParseInfo.o ${PATH_LIB}/qclib.a ${CC} ${IFLAGS} -o ${BINNAME} qcrun.o QCalcManager.o QCompiler.o QCompilerCntl.o QParseInfo.o ${CFLAGS} ${LFLAGS} ${PATH_LIB}/qclib.a $(BINNAME2): qcpp.o QCompilerCode.o QCompiler.o QParseInfo.o $(CC) $(IFLAGS) -o $(BINNAME2) qcpp.o QCompilerCode.o QCompiler.o QParseInfo.o $(CFLAGS) $(LFLAGS) # ----------------------------------------------------------------------------- # Other functions # ----------------------------------------------------------------------------- clean: -rm -f *.o ${BINNAME} $(BINNAME2) -rm -f ${BINNAME}.exe $(BINNAME2).exe -rm -f *.~* *.obj # ----------------------------------------------------------------------------- install: qcompiler @if [ -d ${INSTDIR} ]; \ then \ cp ${OPT_BINNAME} ${INSTDIR}; \ chmod 711 ${INSTDIR}/${OPT_BINNAME}; \ echo "Installed in ${INSTDIR}"; \ else \ echo "Sorry, ${INSTDIR} does not exist."; \ fi # ----------------------------------------------------------------------------- uninstall: @if [ -e ${INSTDIR}/${OPT_BINNAME} ]; \ then \ -rm ${INSTDIR}/${OPT_BINNAME}; \ echo "unnstalled successfully."; \ else \ echo "Sorry, ${INSTDIR}/${OPT_BINNAME} does not exist."; \ fi