#+--------------------------------------------------------------+
#|                                                              |
#| *****  Makefile (making for .exe/.a ) *****                  |
#|	                                 takashi 20071201(qt+lib)   |
#|                                                              |
#+--------------------------------------------------------------+


CLASSNAME = threadH8GUI

###
###  making file name
#########################################

TARGET  		= sample_$(CLASSNAME).exe	# Execute file name
TARGETLIB 	= $(CLASSNAME).a		# Library file name(for RTM)

###
###   QT settings 
#########################################

QTDIR 		= /usr/lib/qt-3.3
QTLIBS 		= $(QTDIR)/lib/
QTINCLUDE = $(QTDIR)/include/
QTMOCMAKE = $(QTDIR)/bin/moc
QTFLAG 		= -lqt-mt
QTDEFINE = 

###
###   COMPILE SETTING 
########################################################

LPATHS = -L/usr/lib/ -L$(QTDIR)/lib
LFLAG	=  -lX11 -Wall -g -O -lm $(QTFLAG)

CPATHS	=  -I/usr/include -I$(QTDIR)/include/
CFLAGS	= -o32 -B 2048 

XINVS	= 

CFLAGS2 = $(QTDEFINE) #-DDEBUG -DIV_STRICT

INC = ./
BIN = ./
SRC = ./
OBJ = ./obj/
CPP = ./
TARGETLIBDIR = ./

###
###  OBJECTS
########################################################

LIBOBJECTS =	$(OBJ)$(CLASSNAME).o \
		$(OBJ)sharedMemoryClient.o \
		$(OBJ)FloatSpinBox.o \
		$(OBJ)moc_FloatSpinBox.o \
		$(OBJ)CommandInterpretation.o \
		$(OBJ)FormH8GUI.o \
		$(OBJ)moc_FormH8GUI.o \
		$(OBJ)threadBase.o \
		

OBJECTS =	$(LIBOBJECTS) \
		$(OBJ)main.o \

MOC = $(SRC)moc_FormH8GUI.cpp \
			$(SRC)moc_FloatSpinBox.cpp \

###
###  COMPILING COMMANDS 
###########################################################

all:	$(MOC) $(OBJECTS)
	$(CXX) $(CPATHS) $(LPATHS) -o $(BIN)$(TARGET) $(OBJECTS) \
	$(LFLAG) $(XINVS) $(DLD) 

# making Library (making for RT)
# ***.a : ( cd ***
lib:	$(MOC) $(LIBOBJECTS)
	$(AR) $(ARFLAGS) $(TARGETLIBDIR)$(TARGETLIB) $(LIBOBJECTS)

clean:
	/bin/rm -f core ./$(SRC)*~ ./$(SRC)core ./$(OBJ)*.o ./$(OBJ)*~
	/bin/rm -f *~ core server client
	/bin/rm -f $(MOC)
	/bin/rm -f $(BIN)$(TARGET)
	/bin/rm -f $(TARGETLIBDIR)$(TARGETLIB)


###
###  INTER-DEPENDANCY LIST (contains both .h & .o files)
###
#############################################################

$(OBJ)main.o:		$(SRC)main.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)main.o -c \
			$(SRC)main.cpp

$(OBJ)$(CLASSNAME).o:	$(SRC)$(CLASSNAME).cpp $(INC)$(CLASSNAME).h
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)$(CLASSNAME).o -c \
			$(SRC)$(CLASSNAME).cpp


$(OBJ)sharedMemoryClient.o: $(INC)sharedMemoryClient.h $(SRC)sharedMemoryClient.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)sharedMemoryClient.o -c \
			$(SRC)sharedMemoryClient.cpp

$(OBJ)CommandInterpretation.o: $(INC)CommandInterpretation.h $(SRC)CommandInterpretation.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)CommandInterpretation.o -c \
			$(SRC)CommandInterpretation.cpp

$(OBJ)threadBase.o: $(INC)threadBase.h $(SRC)threadBase.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)threadBase.o -c \
			$(SRC)threadBase.cpp


############### get qt GUI class (QSpinBox class subclass)

$(OBJ)FloatSpinBox.o: $(INC)FloatSpinBox.h $(SRC)FloatSpinBox.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)FloatSpinBox.o -c \
			$(SRC)FloatSpinBox.cpp

$(OBJ)moc_FloatSpinBox.o:	$(SRC)FloatSpinBox.cpp $(INC)FloatSpinBox.h
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)moc_FloatSpinBox.o -c \
			$(SRC)moc_FloatSpinBox.cpp

$(SRC)moc_FloatSpinBox.cpp: 
			$(QTMOCMAKE) $(INC)FloatSpinBox.h -o moc_FloatSpinBox.cpp

################# my qt GUI class ( QSpinBox class subclass) ### No use

$(OBJ)QFractionSpinBox.o: $(INC)QFractionSpinBox.h $(SRC)QFractionSpinBox.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)QFractionSpinBox.o -c \
			$(SRC)QFractionSpinBox.cpp

$(OBJ)moc_QFractionSpinBox.o: 
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)moc_QFractionSpinBox.o -c \
			$(SRC)moc_QFractionSpinBox.cpp

$(SRC)moc_QFractionSpinBox.cpp: 
			$(QTMOCMAKE) $(INC)QFractionSpinBox.h -o moc_QFractionSpinBox.cpp


################## gui thread #################

$(OBJ)FormH8GUI.o: $(INC)FormH8GUI.h $(SRC)FormH8GUI.cpp
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)FormH8GUI.o -c \
			$(SRC)FormH8GUI.cpp

$(OBJ)moc_FormH8GUI.o: 
			$(CXX) $(CFLAGS) $(CFLAGS2) $(CPATHS) -o $(OBJ)moc_FormH8GUI.o -c \
			$(SRC)moc_FormH8GUI.cpp

$(SRC)moc_FormH8GUI.cpp: 
			$(QTMOCMAKE) FormH8GUI.h -o moc_FormH8GUI.cpp


