# # command result # ------- ------ # make clean remove object files and executable # make depend determine file dependencies # make make necessary files # make fresh make clean; make depend; make # # project specifics - executable name, source files, object directory # APP = ./robot APPDIR = ./ OBJDIR = ./obj/ SOURCES = main.cpp # platform / project specific compiler, flags, etc. # SHELL = /bin/sh CC = gcc CCC = g++ CXX = $(CCC) CXXFLAGS = -g -Wall -pedantic CCFLAGS = $(CXXFLAGS) CFLAGS = $(CCFLAGS) LIBES = -L /usr/openwin/lib/ -lm -lglut -lGLU -lGL -lXmu -lXi \ -lXext -lX11 # special include directories to keep makedepend from complaining # about non-standard libraries # INCLUDES = -I /mnt/local/include/g++-3 \ -I /mnt/local/sparc-sun-solaris2.7/include/ \ -I /mnt/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include/ ### # shouldn't need to change anything below here for different platforms ### # create target names... # OBJECTS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES))) TARGETS = $(addprefix $(OBJDIR), $(OBJECTS)) # rules for compiling c / cpp files # $(OBJDIR)%.o: %.c @mkdir -p $(OBJDIR) @echo "$(CC) $(CFLAGS) -c $*.c" @$(CC) $(CFLAGS) -o $(OBJDIR)/$*.o -c $*.c %.o: %.c @mkdir -p $(OBJDIR) @echo "$(CC) $(CFLAGS) -c $*.c" @$(CC) $(CFLAGS) -o $(OBJDIR)/$*.o -c $*.c $(OBJDIR)%.o: %.cpp @mkdir -p $(OBJDIR) @echo "$(CXX) $(CXXFLAGS) -c $*.cpp" @$(CXX) $(CXXFLAGS) -o $(OBJDIR)/$*.o -c $*.cpp %.o: %.cpp @mkdir -p $(OBJDIR) @echo "$(CXX) $(CXXFLAGS) -c $*.cpp" @$(CXX) $(CXXFLAGS) -o $(OBJDIR)/$*.o -c $*.cpp # make commands - all, clean, depend, fresh # all: $(APP) $(APP): $(TARGETS) @mkdir -p $(APPDIR) $(CXX) $(CXXFLAGS) -o $(APPDIR)$(APP) $(TARGETS) $(LIBES) @chmod u+x $(APPDIR)$(APP) clean: rm -f $(OBJDIR)*.o rm -f $(APPDIR)$(APP) depend: makedepend -p$(OBJDIR) -- $(CXXFLAGS) $(INCLUDES) -- $(SOURCES) fresh: make clean make depend make all # DO NOT DELETE ./obj/main.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h ./obj/main.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h ./obj/main.o: /mnt/local/include/g++-3/iostream.h ./obj/main.o: /mnt/local/include/g++-3/streambuf.h ./obj/main.o: /mnt/local/include/g++-3/libio.h ./obj/main.o: /mnt/local/sparc-sun-solaris2.7/include/_G_config.h ./obj/main.o: /mnt/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include/stddef.h ./obj/main.o: /usr/include/GL/glut.h /usr/include/GL/gl.h ./obj/main.o: /usr/include/GL/glmacros.h /usr/include/GL/glu.h