# =============================================================================
#	Makefile for qcompiler
# =============================================================================

.SUFFIXES: .cpp

all: qclib.a

# Binary file name
BINNAME = qclib.a

# Normal compiler
CC = g++
#CC = bcc32
#CC = mwcc

# Where to install
INSTDIR = ~/bin

# Compile options
PATH_ROOT = ../calcunits
IFLAGS = -I. -I${PATH_ROOT}
CFLAGS = -O2
#CFLAGS = -Wall -ansi -O2
#CFLAGS =  -O2
LFLAGS = -lm

# Calcunit files

CALCUNITS=$(PATH_ROOT)/QBits.cpp $(PATH_ROOT)/QCalcUnit.cpp \
$(PATH_ROOT)/QC_not.cpp $(PATH_ROOT)/QC_cnot.cpp  $(PATH_ROOT)/QC_ccnot.cpp \
$(PATH_ROOT)/QC_rot.cpp $(PATH_ROOT)/QC_crot.cpp  $(PATH_ROOT)/QC_hadamard.cpp \
$(PATH_ROOT)/QC_pauliX.cpp $(PATH_ROOT)/QC_pauliY.cpp $(PATH_ROOT)/QC_pauliZ.cpp \
$(PATH_ROOT)/QC_swap.cpp $(PATH_ROOT)/QC_measure.cpp

CALCUNITS_O=$(CALCUNITS:.cpp=.o)

.cpp.o:
	$(CC) $(IFLAGS) -c $< -o $(PATH_ROOT)/$@ $(CFLAGS)

qclib.o: qclib.cpp qclib.h $(CALCUNITS_O)
	$(CC) $(IFLAGS) -c qclib.cpp -o qclib.o $(CFLAGS)

qclib.a: qclib.o $(CALCUNITS_O)
	ar crv qclib.a qclib.o $(CALCUNITS_O)

clean:
	-rm -f *.o ${BINNAME}

