Merge branch 'master' into libpg
authorPatrik Gornicz <Gornicz.P@gmail.com>
Fri, 1 May 2009 23:10:29 +0000 (19:10 -0400)
committerPatrik Gornicz <Gornicz.P@gmail.com>
Fri, 1 May 2009 23:10:29 +0000 (19:10 -0400)
Conflicts:
Makefile

1  2 
Makefile

diff --combined Makefile
+++ b/Makefile
@@@ -1,28 -1,54 +1,58 @@@
  
- LIBGL    := -lGL -lGLU
- LIBSDL   := `sdl-config --libs`
- LIBS     := ${LIBSDL} ${LIBGL} -lpg
+ # set this on the command line to 1 to get a windows 32 build
+ WIN32    := 0
+ # set this on the command line to 1 to get a final (none debug) build
+ FINAL    := 0
+ ifeq (${WIN32},1)
+     LIBGL   := -lopengl32 -lglu32
+     LIBSDL  := `/usr/mingw32/bin/sdl-config --libs`
+ 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
- CXXFLAGS := ${MYFLAGS} ${DBGFLAGS}
 +LNKFLAGS := -Wl,-rpath,${RPATH}
 +
- CXX      := g++
+ ifeq (${WIN32},1)
+     CXXFLAGS    := ${OPTFLAGS}
+ else ifeq (${FINAL},1)
+     CXXFLAGS    := ${OPTFLAGS}
+ else
+     CXXFLAGS    := ${MYFLAGS} ${DBGFLAGS}
+ endif
+ ifeq (${WIN32},1)
+     CXX := mingw32-g++
+ else
+     CXX := g++
+ endif
  
 -DIRS := # := start
 +DIRS    := # := start
  
  SRCSDIR := src/
  SRCS    := # := start
  
- OBJSDIR := objsd/
- OBJS    := # := start
+ ifeq (${WIN32},1)
+     OBJSDIR := objs-mingw32/
+ else ifeq (${FINAL},1)
+     OBJSDIR := objs/
+ else
+     OBJSDIR := objsd/
+ endif
+ OBJS        := # := start
  
  DEPSDIR := deps/
  DEPS    := # := start
  DIRMK   := dir.mk
  include ${SRCSDIR}${DIRMK}
  
- WORKINGDIR  := bind/
+ ifeq (${WIN32},1)
+     WORKINGDIR  := bin-mingw32/
+ else ifeq (${FINAL},1)
+     WORKINGDIR  := bin/
+ else
+     WORKINGDIR  := bind/
+ endif
  
  CFGDIRNAME  := configs/
  SRCCFGDIR   := ${CFGDIRNAME}
@@@ -41,9 -73,8 +77,9 @@@ CFGS := # := star
  CFGS += keys.cfg
  CFGS := $(addprefix ${DSTCFGDIR},${CFGS})
  
 -SRCLIBSDIR  := libs/
 -DSTLIBSDIR  := ${WORKINGDIR}
 +LIBSDIRNAME := libs/
 +SRCLIBSDIR  := ${LIBSDIRNAME}
 +DSTLIBSDIR  := ${WORKINGDIR}${LIBSDIRNAME}
  
  LIBSTXT     := # := start
  LIBSTXT     += COPYING-SDL
@@@ -52,8 -83,11 +88,12 @@@ LIBSTXT     += VERSION-SD
  LIBSTXT     := $(addprefix ${DSTLIBSDIR},${LIBSTXT})
  
  LIBSCPY     := # := start
- LIBSCPY     += libSDL-1.2.so.0
- LIBSCPY     += libpg.so.0
+ 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})
  
  SRCTXTDIR   :=
@@@ -63,22 -97,19 +103,26 @@@ TXT         := # := star
  TXT         += COPYING
  TXT         := $(addprefix ${DSTTXTDIR},${TXT})
  
- TARGETNAME  := run_physics
+ ifeq (${WIN32},1)
+     TARGETNAME  := run_physics.exe
+ else
+     TARGETNAME  := run_physics
+ endif
  TARGETTMP   := ${OBJSDIR}${TARGETNAME}
  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"
@@@ -106,7 -137,7 +150,7 @@@ all: ${TARGET} ${CFGS} ${LIBSTXT} ${LIB
  # 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}
@@@ -136,16 -167,18 +180,18 @@@ ${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
  .PHONY: cleanbin
  cleanbin:
        ${Q1}${PRNTFMT} "rm" "${WORKINGDIR}"
@@@ -163,6 -196,8 +209,8 @@@ cleandeps
  
  .PHONY: clean
  clean: cleanobjs
+       ${Q1}${PRNTFMT} "rm" "${TARGET}"
+       ${Q2}rm -rf ${TARGET}
  
  .PHONY: cleanall
  cleanall: clean cleanbin cleandeps
@@@ -188,7 -223,11 +236,11 @@@ physics.tar.bz2
  
  .PHONY: run
  run: all
+ ifeq (${WIN32},1)
+       cd ${WORKINGDIR}; wine ${TARGETNAME}
+ else
        cd ${WORKINGDIR}; ./${TARGETNAME}
+ endif
  
  .PHONY: gdb
  gdb: all
@@@ -208,30 -247,7 +260,7 @@@ prof: ru
        cd ${WORKINGDIR}; kprof -f prof
  
  
- MINGMAKEARGS := "LIBGL      := -lopengl32 -lglu32" \
-                 "LIBSDL     := `/usr/mingw32/bin/sdl-config --libs`" \
-                               "LIBSCPY    := $(addprefix bin-mingw32/,SDL.dll)" \
-                 "CXXFLAGS   := ${OPTFLAGS}" \
-                 "CXX        := mingw32-g++" \
-                 "OBJSDIR    := objs-mingw32/" \
-                 "WORKINGDIR := bin-mingw32/" \
-                 "TARGETNAME := run_physics.exe"
- .PHONY: mingw32
- mingw32:
-       ${Q1}${PRNTFMT} "make" "mingw32"
-       ${Q2}${MAKE} ${MINGMAKEARGS} cleanbin cleanobjs
-       ${Q2}${MAKE} ${MINGMAKEARGS} all
- FINALMAKEARGS := "CXXFLAGS   := ${OPTFLAGS}" \
-                  "OBJSDIR    := objs/" \
-                  "WORKINGDIR := bin/"
- .PHONY: final
- final:
-       ${Q1}${PRNTFMT} "make" "final"
-       ${Q2}${MAKE} ${FINALMAKEARGS} cleanbin cleanobjs
-       ${Q2}${MAKE} ${FINALMAKEARGS} all
- -include ${DEPS}
+ # Do not include deps files when doing a _single_ clean operation
+ ifeq ($(findstring ${MAKECMDGOALS},${CLEANCMDS}),)
+     -include ${DEPS}
+ endif