# ============================================================================= # Makefile for bcc32 # ============================================================================= all: qcompiler # Binary file name BINNAME = qcompiler_test.exe # Normal compiler #CC = c++ CC = bcc32 # Where to install INSTDIR = ~/bin # Compile options PATH_ROOT = .. PATH_UNITS = ../calcunits IFLAGS = -I. -I${PATH_ROOT} -I${PATH_UNITS} #CFLAGS = -Wall -ansi -O2 LFLAGS = -lm # ----------------------------------------------------------------------------- # CalcUnits # ----------------------------------------------------------------------------- QC_UNITS_H = ${PATH_UNITS}/QC_not.h ${PATH_UNITS}/QC_hadamard.h ${PATH_UNITS}/QC_cnot.h ${PATH_UNITS}/QC_crot.h QC_UNITS_O = QC_not.obj QC_hadamard.obj QC_cnot.obj QC_crot.obj QCalcUnit.obj: ${PATH_UNITS}/QCalcUnit.cpp ${PATH_UNITS}/QCalcUnit.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_UNITS}/QCalcUnit.cpp -o QCalcUnit.obj QC_not.obj: ${PATH_UNITS}/QC_not.cpp ${PATH_UNITS}/QC_not.h ${PATH_UNITS}/QCalcUnit.h ${PATH_ROOT}/QBits.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_UNITS}/QC_not.cpp -o QC_not.obj QC_cnot.obj: ${PATH_UNITS}/QC_cnot.cpp ${PATH_UNITS}/QC_cnot.h ${PATH_UNITS}/QCalcUnit.h ${PATH_ROOT}/QBits.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_UNITS}/QC_cnot.cpp -o QC_cnot.obj QC_crot.obj: ${PATH_UNITS}/QC_crot.cpp ${PATH_UNITS}/QC_crot.h ${PATH_UNITS}/QCalcUnit.h ${PATH_ROOT}/QBits.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_UNITS}/QC_crot.cpp -o QC_crot.obj QC_hadamard.obj: ${PATH_UNITS}/QC_hadamard.cpp ${PATH_UNITS}/QC_hadamard.h ${PATH_UNITS}/QCalcUnit.h ${PATH_ROOT}/QBits.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_UNITS}/QC_hadamard.cpp -o QC_hadamard.obj # ----------------------------------------------------------------------------- # Compiler # ----------------------------------------------------------------------------- QCompiler.obj: QCompiler.cpp QCompiler.h QParseInfo.h ${CC} ${IFLAGS} ${CFLAGS} -c QCompiler.cpp -o QCompiler.obj QCompilerCntl.obj: QCompilerCntl.cpp QCompilerCntl.h QCompiler.h QParseInfo.h ${PATH_UNITS}/QCalcUnit.h ${QC_UNITS_H} ${CC} ${IFLAGS} ${CFLAGS} -c QCompilerCntl.cpp -o QCompilerCntl.obj QParseInfo.obj: QParseInfo.h ${CC} ${IFLAGS} ${CFLAGS} -c QParseInfo.cpp -o QParseInfo.obj QBits.obj: ${PATH_ROOT}/QBits.cpp ${PATH_ROOT}/QBits.h ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_ROOT}/QBits.cpp -o QBits.obj QCalcManager.obj: ${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.obj compiler_main.obj: compiler_main.cpp ${PATH_ROOT}/QBits.h ${PATH_ROOT}/QCalcManager.h ${CC} ${IFLAGS} ${CFLAGS} -c compiler_main.cpp -o compiler_main.obj # ----------------------------------------------------------------------------- qcompiler: compiler_main.obj QBits.obj QCalcManager.obj QCompiler.obj QCompilerCntl.obj QParseInfo.obj QCalcUnit.obj ${QC_UNITS_O} ${CC} ${IFLAGS} -o ${BINNAME} compiler_main.obj QBits.obj QCalcManager.obj QCompiler.obj QCompilerCntl.obj QParseInfo.obj QCalcUnit.obj ${QC_UNITS_O} ${CFLAGS} ${LFLAGS} # ----------------------------------------------------------------------------- # Other functions # ----------------------------------------------------------------------------- clean: -rm -f *.obj ${BINNAME} # ----------------------------------------------------------------------------- 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