# $Id$ # Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. ifeq (x$(OS),xWindows_NT) #---------------------------------------- Start Windows stuff CC="C:/Dev-Cpp/bin/gcc.exe" CXX="C:/Dev-Cpp/bin/g++.exe" CFLAGS=-g -Wall -I"C:/Dev-Cpp/include" CXXFLAGS=-g -Wall -I"C:/Dev-Cpp/include" LDFLAGS=-Wl,--output-def,quux.def -L. -L"C:/Dev-Cpp/lib" SRCDIR=src OBJDIR=obj BINDIR=bin TARGETSW=$(BINDIR)/SW.exe TARGETMW=$(BINDIR)/MW.exe TARGETHJ=$(BINDIR)/HJ.exe #---------------------------------------- End of Windows stuff else #---------------------------------------- Start Unix/Mac stuff UNAME := $(shell uname) ifeq ($(strip $(UNAME)),Darwin) #---------------------------------------- Mac CFLAGS=-DMACOSX CXXFLAGS=-DMACOSX LDFLAGS=-lm else #---------------------------------------- Unix PYREXC=pyrexc CFLAGS=-O3 CXXFLAGS=-O3 LDFLAGS=-lm endif CC=gcc CXX=g++ CFLAGS+=-g -Wall -Wmissing-prototypes CXXFLAGS+=-g -Wall SRCDIR=src OBJDIR=obj BINDIR=bin TARGETSW=$(BINDIR)/SW TARGETMW=$(BINDIR)/MW TARGETHJ=$(BINDIR)/HJ #---------------------------------------- End of Unix/Mac stuff endif SRCS=$(SRCDIR)/anillo.cpp \ $(SRCDIR)/AtomList.cpp \ $(SRCDIR)/Atomo.cpp \ $(SRCDIR)/Minimol.cpp \ $(SRCDIR)/MoleculaB.cpp \ $(SRCDIR)/MoleculaT.cpp \ $(SRCDIR)/Nanotubo.cpp \ $(SRCDIR)/pto2D.cpp \ $(SRCDIR)/pto3D.cpp \ $(SRCDIR)/TabPe.cpp OBJS=$(subst $(SRCDIR)/,$(OBJDIR)/,$(SRCS:.cpp=.o)) ################ .SUFFIXES: .h .cpp .o ; .c.o: $(CC) $(CFLAGS) -c -o $@ $^ .cpp.o: $(CXX) $(CXXFLAGS) -c -o $@ $^ ################ # all: $(TARGETSW) $(TARGETMW) $(TARGETHJ) # We are only using the HJ executable now. all: $(TARGETHJ) $(TARGETSW): $(OBJS) $(OBJDIR)/W1.o $(CXX) $(CXXFLAGS) -o $@ $^ $(TARGETMW): $(OBJS) $(OBJDIR)/W15.o $(CXX) $(CXXFLAGS) -o $@ $^ $(TARGETHJ): $(OBJS) $(OBJDIR)/W2.o $(CXX) $(CXXFLAGS) -o $@ $^ clean: rm -f $(OBJDIR)/*.o $(SRCDIR)/*~ $(SRCDIR)/core.* $(BINDIR)/core.* \ $(TARGETSW) $(TARGETMW) $(TARGETHJ) \ singlewall.mmp multiwall.mmp heterojunction.mmp # Usage: make deps >> Makefile deps: makedepend $(SRCS) $(SRCDIR)/W1.cpp $(SRCDIR)/W15.cpp $(SRCDIR)/W2.cpp -f - | \ python procdeps.py $(SRCDIR) $(OBJDIR) .o:.cpp \ $(OBJS) $(OBJDIR)/W1.o $(OBJDIR)/W15.o $(OBJDIR)/W2.o test: $(TARGETSW) $(TARGETMW) $(TARGETHJ) $(TARGETSW) 5 5 12.0 1 1 singlewall.mmp $(TARGETMW) 5 5 12.0 3 3.5 1 2 multiwall.mmp $(TARGETHJ) 5 5 20.0 20 0 20.0 1 3 heterojunction.mmp # Automatically generated dependencies from procdeps.py $(OBJDIR)/anillo.o: $(SRCDIR)/anillo.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/anillo.o $(SRCDIR)/anillo.cpp $(OBJDIR)/AtomList.o: $(SRCDIR)/AtomList.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/AtomList.o $(SRCDIR)/AtomList.cpp $(OBJDIR)/Atomo.o: $(SRCDIR)/Atomo.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/Atomo.o $(SRCDIR)/Atomo.cpp $(OBJDIR)/Minimol.o: $(SRCDIR)/Minimol.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/Minimol.o $(SRCDIR)/Minimol.cpp $(OBJDIR)/MoleculaB.o: $(SRCDIR)/MoleculaB.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/MoleculaB.o $(SRCDIR)/MoleculaB.cpp $(OBJDIR)/MoleculaT.o: $(SRCDIR)/MoleculaT.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/MoleculaT.o $(SRCDIR)/MoleculaT.cpp $(OBJDIR)/Nanotubo.o: $(SRCDIR)/Nanotubo.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/Nanotubo.o $(SRCDIR)/Nanotubo.cpp $(OBJDIR)/pto2D.o: $(SRCDIR)/pto2D.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/pto2D.o $(SRCDIR)/pto2D.cpp $(OBJDIR)/pto3D.o: $(SRCDIR)/pto3D.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/pto3D.o $(SRCDIR)/pto3D.cpp $(OBJDIR)/TabPe.o: $(SRCDIR)/TabPe.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/TabPe.o $(SRCDIR)/TabPe.cpp $(OBJDIR)/W1.o: $(SRCDIR)/W1.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/W1.o $(SRCDIR)/W1.cpp $(OBJDIR)/W15.o: $(SRCDIR)/W15.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/W15.o $(SRCDIR)/W15.cpp $(OBJDIR)/W2.o: $(SRCDIR)/W2.cpp $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/W2.o $(SRCDIR)/W2.cpp $(OBJDIR)/anillo.o: $(SRCDIR)/anillo.h $(OBJDIR)/anillo.o: $(SRCDIR)/pto3D.h $(SRCDIR)/String.h $(SRCDIR)/MoleculaT.h $(OBJDIR)/anillo.o: $(SRCDIR)/MoleculaB.h $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(OBJDIR)/AtomList.o: $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(SRCDIR)/pto3D.h $(SRCDIR)/String.h $(OBJDIR)/AtomList.o: $(SRCDIR)/TabPe.h $(OBJDIR)/Minimol.o: $(SRCDIR)/Minimol.h $(SRCDIR)/pto3D.h $(OBJDIR)/Minimol.o: $(SRCDIR)/String.h $(OBJDIR)/Minimol.o: $(SRCDIR)/MoleculaB.h $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(OBJDIR)/MoleculaB.o: $(SRCDIR)/MoleculaB.h $(SRCDIR)/String.h $(OBJDIR)/MoleculaB.o: $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(SRCDIR)/pto3D.h $(OBJDIR)/MoleculaT.o: $(SRCDIR)/MoleculaT.h $(OBJDIR)/MoleculaT.o: $(SRCDIR)/MoleculaB.h $(SRCDIR)/String.h $(OBJDIR)/MoleculaT.o: $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(SRCDIR)/pto3D.h $(OBJDIR)/MoleculaT.o: $(SRCDIR)/Minimol.h $(SRCDIR)/anillo.h $(OBJDIR)/Nanotubo.o: $(SRCDIR)/Nanotubo.h $(OBJDIR)/pto2D.o: $(SRCDIR)/pto2D.h $(SRCDIR)/pto3D.h $(OBJDIR)/pto2D.o: $(SRCDIR)/String.h $(OBJDIR)/pto3D.o: $(SRCDIR)/pto3D.h $(SRCDIR)/String.h $(OBJDIR)/pto3D.o: $(SRCDIR)/pto2D.h $(OBJDIR)/TabPe.o: $(SRCDIR)/TabPe.h $(SRCDIR)/String.h $(OBJDIR)/W1.o: $(SRCDIR)/W1.h $(SRCDIR)/MoleculaT.h $(SRCDIR)/MoleculaB.h $(SRCDIR)/String.h $(OBJDIR)/W1.o: $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(OBJDIR)/W1.o: $(SRCDIR)/pto3D.h $(SRCDIR)/Nanotubo.h $(OBJDIR)/W15.o: $(SRCDIR)/W15.h $(SRCDIR)/W1.h $(SRCDIR)/MoleculaT.h $(SRCDIR)/MoleculaB.h $(SRCDIR)/String.h $(OBJDIR)/W15.o: $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(SRCDIR)/Atomo.h $(OBJDIR)/W15.o: $(SRCDIR)/pto3D.h $(SRCDIR)/Nanotubo.h $(OBJDIR)/W2.o: $(SRCDIR)/W2.h $(SRCDIR)/pto3D.h $(SRCDIR)/String.h $(OBJDIR)/W2.o: $(SRCDIR)/W1.h $(SRCDIR)/MoleculaT.h $(SRCDIR)/MoleculaB.h $(SRCDIR)/TabPe.h $(SRCDIR)/AtomList.h $(OBJDIR)/W2.o: $(SRCDIR)/Atomo.h $(SRCDIR)/pto2D.h $(SRCDIR)/Nanotubo.h