#############################################################################
# Makefile for building QtGantt for Solaris
* Thanks to Tom Brusehaver
# Cut'n Paste from a Makefile in the Qt 1.44 tutorial
#     Project: qtgantt
#    Template: app
#############################################################################

####### System-dependendant options

QTDIR=/u3/tbruseh/src/qt-2.0.2

####### BEGIN

# Compiling
#SYSCONF_CXX             = g++
SYSCONF_CXX              = CC

# Compiling with support libraries
SYSCONF_CXXFLAGS_X11     = -I/usr/X11R6/include
SYSCONF_CXXFLAGS_QT      = -I$(QTDIR)/include
SYSCONF_CXXFLAGS_OPENGL  = -I/usr/X11R6/include

# Compiline YACC output
SYSCONF_CXXFLAGS_YACC     = -Wno-unused -Wno-parentheses

# Linking with support libraries
# X11
SYSCONF_LFLAGS_X11       = -L/usr/X11R6/lib
SYSCONF_LIBS_X11         = -lX11 -lXext
# Qt, Qt+OpenGL
SYSCONF_LFLAGS_QT        = -L$(QTDIR)/lib
SYSCONF_LIBS_QT          = -lqt
SYSCONF_LIBS_QT_OPENGL   = -lqgl
# OpenGL
SYSCONF_LFLAGS_OPENGL    = -L/usr/X11R6/lib
SYSCONF_LIBS_OPENGL      = -lMesaGL -lMesaGLU -lXmu -lXext -lm
# Yacc
SYSCONF_LIBS_YACC        = 

# Linking applications
#SYSCONF_LINK            = g++
SYSCONF_LINK             = CC
SYSCONF_LFLAGS           = 
SYSCONF_LIBS             = 

# Link flags shared objects
SYSCONF_LFLAGS_SHOBJ     = -shared

# Meta-object compiler
SYSCONF_MOC              = $(QTDIR)/bin/moc

# Linking shared libraries
#   - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0
#   - Place target in $(DESTDIR) - which has a trailing /
#   - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN)
#
#SYSCONF_LINK_SHLIB      = g++
SYSCONF_LINK_SHLIB       = CC
SYSCONF_LINK_TARGET_SHARED       = lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
SYSCONF_LINK_LIB_SHARED  =  $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
                              $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
                              $(OBJECTS) $(OBJMOC) $(LIBS); \
                          mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
                          cd $(DESTDIR); \
                          rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
                          ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
                          ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ)

# Linking static libraries
#   - Build the $(TARGET) library, eg. lib$(TARGET).a
#   - Place target in $(DESTDIR) - which has a trailing /
#
SYSCONF_AR               = ar cqs
SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
SYSCONF_LINK_LIB_STATIC  = rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
                          $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC) 
# Compiling application source
#SYSCONF_CXXFLAGS        = -pipe -O2 -fno-strength-reduce
SYSCONF_CXXFLAGS         += -pipe -O2
# Compiling library source
#SYSCONF_CXXFLAGS_LIB    = -O2 -fno-strength-reduce -fPIC
SYSCONF_CXXFLAGS_LIB     += -O2 -fPIC
# Compiling shared-object source
#SYSCONF_CXXFLAGS_SHOBJ  = -O2 -fno-strength-reduce -fPIC
SYSCONF_CXXFLAGS_SHOBJ   += -O2 -fPIC
# Default link type (stati linking is still be used where required)
SYSCONF_LINK_LIB         = $(SYSCONF_LINK_LIB_SHARED)
SYSCONF_LINK_TARGET      = $(SYSCONF_LINK_TARGET_SHARED)

####### End of automatically generated section
####### END

####### Compiler, tools and options

CXX      =       $(SYSCONF_CXX)
CXXFLAGS=        $(SYSCONF_CXXFLAGS_QT) $(SYSCONF_CXXFLAGS)
LFLAGS   =       $(SYSCONF_LFLAGS_QT) $(SYSCONF_LFLAGS_X11) $(SYSCONF_LFLAGS)
LIBS     =       $(SYSCONF_LIBS_QT) $(SYSCONF_LIBS_X11) $(SYSCONF_LIBS)
MOC      =       $(SYSCONF_MOC)

####### Target

TARGET   = qtgantt
DESTDIR = ./
VER_MAJ = 1
VER_MIN = 0

####### Files

HEADERS  =       gantt.h
SOURCES  =       gantt.cpp main.cpp
OBJECTS  =       gantt.o main.o
SRCMOC   =       moc_gantt.cpp
OBJMOC   =       moc_gantt.o

####### Implicit rules

.SUFFIXES: .cpp .cxx .cc .C .c

.cpp.o:
         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: $(DESTDIR)$(TARGET)

$(DESTDIR)$(TARGET): $(OBJECTS) $(OBJMOC)
 $(SYSCONF_LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)

moc: $(SRCMOC)

tmake:
 tmake qtgantt.pro

clean:
 -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC)
 -rm -f *~ core

####### Compile

gantt.o: gantt.cpp \
         gantt.h

main.o: main.cpp \
         gantt.h

moc_gantt.o: moc_gantt.cpp \
         gantt.h

moc_gantt.cpp: gantt.h
 $(MOC) gantt.h -o moc_gantt.cpp
