Merge branch 'master' into libpg
[physics.git] / Makefile
index 9d523b5..6faa1df 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,15 +13,19 @@ else
     LIBGL   := -lGL -lGLU
     LIBSDL  := `sdl-config --libs`
 endif
-LIBS        := ${LIBSDL} ${LIBGL}
-
+LIBMY       := -lpg
+LIBS        := ${LIBSDL} ${LIBGL} ${LIBMY}
 
 OPTFLAGS := -O2
 DBGFLAGS := -ggdb
 PRFFLAGS := ${DBGFLAGS} -pg
 MYFLAGS  := -Wall -pedantic -ansi
 
+RPATH    := libs/
+
 VALFLAGS := --leak-check=full
+LNKFLAGS := -Wl,-rpath,${RPATH}
+
 ifeq (${WIN32},1)
     CXXFLAGS    := ${OPTFLAGS}
 else ifeq (${FINAL},1)
@@ -36,7 +40,7 @@ else
     CXX := g++
 endif
 
-DIRS := # := start
+DIRS    := # := start
 
 SRCSDIR := src/
 SRCS    := # := start
@@ -73,8 +77,9 @@ CFGS := # := start
 CFGS += keys.cfg
 CFGS := $(addprefix ${DSTCFGDIR},${CFGS})
 
-SRCLIBSDIR  := libs/
-DSTLIBSDIR  := ${WORKINGDIR}
+LIBSDIRNAME := libs/
+SRCLIBSDIR  := ${LIBSDIRNAME}
+DSTLIBSDIR  := ${WORKINGDIR}${LIBSDIRNAME}
 
 LIBSTXT     := # := start
 LIBSTXT     += COPYING-SDL
@@ -86,7 +91,8 @@ LIBSCPY     := # := start
 ifeq (${WIN32},1)
     LIBSCPY += SDL.dll
 else
-    LIBSCPY += libSDL.so
+    LIBSCPY += libSDL-1.2.so.0
+    LIBSCPY += libpg.so.0
 endif
 LIBSCPY     := $(addprefix ${DSTLIBSDIR},${LIBSCPY})
 
@@ -107,9 +113,16 @@ TARGET      := ${WORKINGDIR}${TARGETNAME}
 
 DEPSBLDDIRS := ${DEPSDIR} $(addprefix ${DEPSDIR},${DIRS})
 OBJSBLDDIRS := ${OBJSDIR} $(addprefix ${OBJSDIR},${DIRS})
-BLDDIRS     := ${OBJSBLDDIRS} ${DEPSBLDDIRS} ${WORKINGDIR} ${DSTCFGDIR}
+
+BLDDIRS     := # := start
+BLDDIRS     += ${OBJSBLDDIRS}
+BLDDIRS     += ${DEPSBLDDIRS}
+BLDDIRS     += ${WORKINGDIR}
+BLDDIRS     += ${DSTCFGDIR}
+BLDDIRS     += ${DSTLIBSDIR}
 
 INCDIRS     := ${SRCSDIR}
+INCFLAGS    := $(addprefix -I, ${INCDIRS})
 
 
 PRNTFMT := printf "%-5s: %s\n"
@@ -137,7 +150,7 @@ all: ${TARGET} ${CFGS} ${LIBSTXT} ${LIBSCPY} ${TXT}
 # how to link the main target
 ${TARGETTMP}: ${OBJS}
        ${Q1}${PRNTFMT} "${CXX}" "$@"
-       ${Q2}${CXX} ${CXXFLAGS} -o $@ $^ ${LIBS}
+       ${Q2}${CXX} ${CXXFLAGS} ${LNKFLAGS} -o $@ $^ ${LIBS}
 
 # rule to copy tmp target to working directory
 ${TARGET}: ${TARGETTMP} | ${WORKINGDIR}
@@ -167,14 +180,14 @@ ${BLDDIRS}:
 # rule to make an object file from a .cpp
 ${OBJSDIR}%.o: ${SRCSDIR}%.cpp | $$(dir $$@)
        ${Q1}${PRNTFMT} "${CXX}" "$@"
-       ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $< -I "${INCDIRS}"
+       ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $< ${INCFLAGS}
 
 # rule to make a depend file from a .cpp
 #   be clever and escape the / chars in file paths
 #   DON'T simply use another sed delimiter or it can't appear in the file paths
 ${DEPSDIR}%.d: ${SRCSDIR}%.cpp | $$(dir $$@)
        ${Q1}${PRNTFMT} "DEP" "$@"
-       ${Q2}${CXX} -MM ${CXXFLAGS} $< -I "${INCDIRS}" | \
+       ${Q2}${CXX} -MM ${CXXFLAGS} $< ${INCFLAGS} | \
                sed 's/\(^.*\):/$(subst /,\/,${OBJSDIR}\1 $@):/' > $@
 
 CLEANCMDS := cleanbin cleanobjs cleandeps clean cleanall