Advertisement
Guest User

make file

a guest
Jul 21st, 2012
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.25 KB | None | 0 0
  1. COMPILER=G++
  2.  
  3. # todo: object files into output path, processing c / c++ files in the same time (?), nested directories for source files (?)
  4. C = cpp
  5. OUTPUT_PATH = out/production/cppOpenGL/
  6. SOURCE_PATH = src/
  7. EXE = $(OUTPUT_PATH)cppOpenGL
  8.  
  9.  
  10.  
  11. ifeq ($(COMPILER), G++)
  12.   ifeq ($(OS),Windows_NT)
  13.     OBJ = obj
  14.   else
  15.     OBJ = o
  16.   endif
  17.   COPT = -O2
  18.   CCMD = g++
  19.   OBJFLAG = -o
  20.   EXEFLAG = -o
  21. # INCLUDES = -I../.includes
  22.   INCLUDES =
  23. # LIBS = -lgc
  24.   LIBS = -lglut -lGL -lGLU -lGLEW -lm
  25.  LIBPATH = -L../gc/.libs
  26.   #LIBPATH = -L/lib -L/usr/lib
  27.   CPPFLAGS = $(COPT) -g $(INCLUDES)
  28.   LDFLAGS = $(LIBPATH) -g $(LIBS)
  29.   DEP = dep
  30. else
  31.   OBJ = obj
  32.   COPT = /O2
  33.   CCMD = cl
  34.   OBJFLAG = /Fo
  35.   EXEFLAG = /Fe
  36. # INCLUDES = /I..\\.includes
  37.   INCLUDES =
  38. # LIBS = ..\\.libs\\libgc.lib
  39.   LIBS = -lglut -lGL -lGLU -lGLEW -lm
  40.   CPPFLAGS = $(COPT) /DEBUG $(INCLUDES)
  41.   LDFLAGS = /DEBUG
  42. endif
  43.  
  44. OBJS := $(patsubst %.$(C),%.$(OBJ),$(wildcard $(SOURCE_PATH)*.$(C)))
  45.  
  46. %.$(OBJ):%.$(C)
  47.     @echo Compiling $(basename $<)...
  48.     $(CCMD) -c $(CPPFLAGS) $(CXXFLAGS) $< $(OBJFLAG)$@
  49.  
  50. all: $(OBJS)
  51.     @echo Linking...
  52.     $(CCMD) $(LDFLAGS) $^ $(LIBS) $(EXEFLAG) $(EXE)
  53.  
  54. clean:
  55.     rm -rf $(SOURCE_PATH)*.$(OBJ) $(EXE)
  56.  
  57. rebuild: clean all
  58. #rebuild is not entirely correct
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement