#!/bin/csh # # $Id: Makefile,v 1.1 2010/10/13 14:55:01 jlang Exp $ # # $Log: Makefile,v $ # Revision 1.1 2010/10/13 14:55:01 jlang # Simple makefile, does need make clean to recompile # # CXX = g++ ifndef OSTYPE OSTYPE=cygnus # OSTYPE=linux-gnu endif ifeq ($(OSTYPE),linux-gnu) INCDIR = LDLIBDIR = # -L/usr/X11R6/lib LDLIBS = # -lglut -lGLU -lGL -lm # -lglui else LDLIBS = # -lglut32 -lglu32 -lopengl32 -lm # -lglui endif .PHONY: all clean SRC = parabola.cpp function1d.cpp # Default build : all: dependencies parabola better: extra_defs all extra_defs: CFLAGS=-DOWN_COPY dependencies: $(SRC:%.cpp=%.d) $(SRC:%.c=%.d) # sed line based on John Graham-Cumming, Dependency Management, # Dr.Dobb's Portal, Apr 01, 2006. %.d:%.cpp $(CXX) $(INCDIR) -MG -MM $< | sed 's,\($*\.o\)[ :]*\(.*\), $@ : $$\(wildcard \2\)\n\1 : \2,g' > $@ -include $(SRC:.cpp=.d) parabola: $(SRC:%.cpp=%.o) $(CXX) $(LDLIBDIR) -o $@ $^ $(LDLIBS) %.o:%.c $(CC) $(INCDIR) -c $*.c -o $@ %.o:%.cpp $(CXX) $(INCDIR) $(CFLAGS) -c $*.cpp -o $@ clean: rm -f *~ *.o *.d