OSDN Git Service

Initial Commit
[qcad/qcad.git] / compiler / makefile
1 # =============================================================================
2 #       Makefile for qcompiler
3 # =============================================================================
4
5 .SUFFIXES: .cpp
6
7 all: qcrun qcpp
8
9 # Binary file name
10 BINNAME=qcrun
11 BINNAME2=qcpp
12
13 # Normal compiler
14 CC=g++
15
16 # Where to install
17 INSTDIR = ~/bin
18
19 # Compile options
20 PATH_ROOT = ../calcunits
21 PATH_UNITS = ../calcunits
22 PATH_LIB = ../qclib
23 IFLAGS = -I. -I${PATH_ROOT} -I${PATH_UNITS}
24 #CFLAGS = -mno-cygwin -Wall -O4
25 CFLAGS = -Wall
26 #CFLAGS =  -O2
27 LFLAGS = -lm 
28
29 # -----------------------------------------------------------------------------
30 #       Compiler
31 # -----------------------------------------------------------------------------
32 QCompiler.o: QCompiler.cpp QCompiler.h QParseInfo.h
33         ${CC} ${IFLAGS} ${CFLAGS} -c QCompiler.cpp -o QCompiler.o
34
35 QCompilerCntl.o: QCompilerCntl.cpp QCompilerCntl.h QCompiler.h QParseInfo.h ${PATH_UNITS}/QCalcUnit.h ${QC_UNITS_H}
36         ${CC} ${IFLAGS} ${CFLAGS} -c QCompilerCntl.cpp -o QCompilerCntl.o
37
38 QParseInfo.o: QParseInfo.h
39         ${CC} ${IFLAGS} ${CFLAGS} -c QParseInfo.cpp -o QParseInfo.o
40
41 QBits.o: ${PATH_ROOT}/QBits.cpp ${PATH_ROOT}/QBits.h
42         ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_ROOT}/QBits.cpp -o QBits.o
43
44 QCalcManager.o: ${PATH_ROOT}/QCalcManager.cpp ${PATH_ROOT}/QCalcManager.h QCompilerCntl.h ${PATH_ROOT}/QBits.h ${PATH_UNITS}/QCalcUnit.h
45         ${CC} ${IFLAGS} ${CFLAGS} -c ${PATH_ROOT}/QCalcManager.cpp -o QCalcManager.o
46
47 QCompilerCode.o: QCompilerCode.cpp QCompilerCode.h QCompiler.h QParseInfo.h
48         $(CC) $(IFLAGS) $(CFLAGS) -c QCompilerCode.cpp -o QCompilerCode.o
49
50 qcrun.o: qcrun.cpp ${PATH_ROOT}/QBits.h ${PATH_ROOT}/QCalcManager.h
51         ${CC} ${IFLAGS} ${CFLAGS} -c qcrun.cpp -o qcrun.o
52
53 qcpp.o: qcpp.cpp QCompilerCode.h QCompiler.h
54         $(CC) $(IFLAGS) $(CFLAGS) -c qcpp.cpp -o qcpp.o
55 # -----------------------------------------------------------------------------
56 $(BINNAME): qcrun.o QCalcManager.o QCompiler.o QCompilerCntl.o QParseInfo.o ${PATH_LIB}/qclib.a
57         ${CC} ${IFLAGS} -o ${BINNAME} qcrun.o QCalcManager.o QCompiler.o QCompilerCntl.o QParseInfo.o ${CFLAGS} ${LFLAGS} ${PATH_LIB}/qclib.a
58
59 $(BINNAME2): qcpp.o QCompilerCode.o QCompiler.o QParseInfo.o
60         $(CC) $(IFLAGS) -o $(BINNAME2) qcpp.o QCompilerCode.o QCompiler.o QParseInfo.o $(CFLAGS) $(LFLAGS)
61
62 # -----------------------------------------------------------------------------
63 #       Other functions
64 # -----------------------------------------------------------------------------
65 clean:
66         -rm -f *.o ${BINNAME} $(BINNAME2)
67         -rm -f ${BINNAME}.exe $(BINNAME2).exe
68         -rm -f *.~* *.obj
69
70 # -----------------------------------------------------------------------------
71 install: qcompiler
72         @if [ -d ${INSTDIR} ]; \
73         then \
74                 cp ${OPT_BINNAME} ${INSTDIR}; \
75                 chmod 711 ${INSTDIR}/${OPT_BINNAME}; \
76                 echo "Installed in ${INSTDIR}"; \
77         else \
78                 echo "Sorry, ${INSTDIR} does not exist."; \
79         fi
80
81 # -----------------------------------------------------------------------------
82 uninstall:
83         @if [ -e ${INSTDIR}/${OPT_BINNAME} ]; \
84         then \
85                 -rm ${INSTDIR}/${OPT_BINNAME}; \
86                 echo "unnstalled successfully."; \
87         else \
88                 echo "Sorry, ${INSTDIR}/${OPT_BINNAME} does not exist."; \
89         fi