#makefile Betti Oesterholz


ifdef debug
   DEBUG_FLAG:=-DDEBUG=$(debug)
endif

SHELL:=/bin/sh
CC:=gcc
#debugg flags
#CFLAG:=-g -Wall $(DEBUG_FLAG)
#optimize compile flags
CFLAG=-O -O2
#CFLAG=-O -O2 -O3
LIBS:=-lstdc++

COMMON_OBJ:=run.o cUniversTools.o cUniversNeib.o nReadValues.o cRandomMersenne.o

ifdef HOME
#if linux create cKeyboard-object
COMMON_OBJ+=cKeyboard.o
endif

UNIVERS_OBJ:=cUnivers.o cPoint.o $(COMMON_OBJ)
UNIVERS_D_OBJ:=cUniversD.o cPointD.o $(COMMON_OBJ)
UNIVERS_P_OBJ:=cUniversP.o cPointP.o $(COMMON_OBJ)

#Pseudorules
.PHONY: all clean

all: univers universD universP

univers:$(UNIVERS_OBJ)
	$(CC) $(CFLAG) $(LDFLAGS) -o $@ $^ $(LIBS)

universD:$(UNIVERS_D_OBJ)
	$(CC) $(CFLAG) $(LDFLAGS) -o $@ $^ $(LIBS)

universP:$(UNIVERS_P_OBJ)
	$(CC) $(CFLAG) $(LDFLAGS) -o $@ $^ $(LIBS)

%.o: %.cpp
	$(CC) $(CFLAG) -c $< -o $@

#create objects
cUnivers.o: CFLAG+= -DUNIVERS
cUnivers.o: cUnivers.cpp cUnivers.h nReadValues.h cRandomMersenne.h cKeyboard.h cPoint.h

cUniversD.o: CFLAG+= -DUNIVERS_D
cUniversD.o: cUnivers.cpp cUnivers.h nReadValues.h cRandomMersenne.h cKeyboard.h cPoint.h
	$(CC) $(CFLAG) -c $< -o $@

cUniversP.o: CFLAG+= -DUNIVERS_P
cUniversP.o: cUnivers.cpp cUnivers.h nReadValues.h cRandomMersenne.h cKeyboard.h cPoint.h
	$(CC) $(CFLAG) -c $< -o $@

run.o: run.cpp
cUniversTools.o: cUniversTools.cpp cUniversTools.h cUnivers.h
cUniversNeib.o: cUniversNeib.cpp cUniversNeib.h cUniversTools.h
cPoint.o: cPoint.cpp cPoint.h
cPointD.o: cPointD.cpp cPoint.h
cPointP.o: cPointP.cpp cPoint.h
nReadValues.o: nReadValues.cpp nReadValues.h
cRandomMersenne.o: cRandomMersenne.cpp cRandomMersenne.h
cKeyboard.o: cKeyboard.cpp cKeyboard.h

clean:
	rm -f *.o *.cpp~ *.h~ *.txt~
