#*************************************************************************** # TubeGen Program # v 3.2 # # frey@chem.udel.edu # #*************************************************************************** # Directories: SOURCE_DIR = Source HEADER_DIR = Headers BUILD_DIR = build OBJECT_DIR = $(BUILD_DIR)/objects # Define our main target: TARGET_T = $(BUILD_DIR)/tubegen # The version is encoded Apple-style: VERSION = 0x03308000 # Some secondary targets: TARGET_G = $(BUILD_DIR)/graphite TARGET_D = $(BUILD_DIR)/diamond TARGET_FCC = $(BUILD_DIR)/fcc # Build Directories: MKDIRS = $(OBJECT_DIR) BUILD_OBJS_T = $(OBJECT_DIR)/Core3DMath.o \ $(OBJECT_DIR)/ANSR.o \ $(OBJECT_DIR)/Cell.o \ $(OBJECT_DIR)/eprintf.o \ $(OBJECT_DIR)/CrystalCell.o \ $(OBJECT_DIR)/Bitmap.o \ $(OBJECT_DIR)/TubuleBasis.o \ $(OBJECT_DIR)/TubeGen.o BUILD_OBJS_G = $(OBJECT_DIR)/Core3DMath.o \ $(OBJECT_DIR)/ANSR.o \ $(OBJECT_DIR)/Cell.o \ $(OBJECT_DIR)/CrystalCell.o \ $(OBJECT_DIR)/graphite.o BUILD_OBJS_D = $(OBJECT_DIR)/Core3DMath.o \ $(OBJECT_DIR)/ANSR.o \ $(OBJECT_DIR)/Cell.o \ $(OBJECT_DIR)/CrystalCell.o \ $(OBJECT_DIR)/diamond.o BUILD_OBJS_FCC = $(OBJECT_DIR)/Core3DMath.o \ $(OBJECT_DIR)/ANSR.o \ $(OBJECT_DIR)/Cell.o \ $(OBJECT_DIR)/CrystalCell.o \ $(OBJECT_DIR)/fcc.o # Flags: WARN = -w INCLUDE = -I $(HEADER_DIR) CC = c++ CFLAGS = $(WARN) $(INCLUDE) -O3 -fpermissive LFLAGS = -lm ######################################## # System dependent items: # ######################################## OSTYPE = $(shell uname) ifeq ($(OSTYPE),IRIX64) CFLAGS += -DSGI endif all: $(TARGET_T) $(TARGET_D) $(TARGET_G) $(TARGET_FCC) clean:: rm -rf $(BUILD_DIR) $(MKDIRS): mkdir -p $@ $(TARGET_G): $(MKDIRS) $(BUILD_OBJS_G) $(CC) -o $(TARGET_G) $(BUILD_OBJS_G) $(LFLAGS) $(TARGET_D): $(MKDIRS) $(BUILD_OBJS_D) $(CC) -o $(TARGET_D) $(BUILD_OBJS_D) $(LFLAGS) $(TARGET_T): $(MKDIRS) $(BUILD_OBJS_T) $(CC) -o $(TARGET_T) $(BUILD_OBJS_T) $(LFLAGS) $(TARGET_FCC): $(MKDIRS) $(BUILD_OBJS_FCC) $(CC) -o $(TARGET_FCC) $(BUILD_OBJS_FCC) $(LFLAGS) install: $(TARGET_T) sudo cp $(TARGET_T) /usr/local/bin sudo cp $(TARGET_G) /usr/local/bin sudo cp $(TARGET_D) /usr/local/bin sudo cp $(TARGET_FCC) /usr/local/bin #*************************************************************************** # Individual compiles for the sources #*************************************************************************** EPRINTF_DEPS = $(HEADER_DIR)/eprintf.h $(OBJECT_DIR)/eprintf.o: $(SOURCE_DIR)/eprintf.c $(EPRINTF_DEPS) @echo -n " Compiling 'eprintf.c'..." @$(CC) -c $(SOURCE_DIR)/eprintf.c $(CFLAGS) -o $@ @echo "done." #### CORE3DMATH_DEPS = $(HEADER_DIR)/Core3DMath.h \ $(HEADER_DIR)/CoreConst.h $(OBJECT_DIR)/Core3DMath.o: $(SOURCE_DIR)/Core3DMath.c $(CORE3DMATH_DEPS) @echo -n " Compiling 'Core3DMath.c'..." @$(CC) -c $(SOURCE_DIR)/Core3DMath.c $(CFLAGS) -o $@ @echo "done." #### ANSR_DEPS = $(HEADER_DIR)/ANSR.h $(OBJECT_DIR)/ANSR.o: $(SOURCE_DIR)/ANSR.cpp $(ANSR_DEPS) @echo -n " Compiling 'ANSR.cpp'..." @$(CC) -c $(SOURCE_DIR)/ANSR.cpp $(CFLAGS) -o $@ @echo "done." #### BITMAP_DEPS = $(HEADER_DIR)/Bitmap.h $(OBJECT_DIR)/Bitmap.o: $(SOURCE_DIR)/Bitmap.c $(BITMAP_DEPS) @echo -n " Compiling 'Bitmap.c'..." @$(CC) -c $(SOURCE_DIR)/Bitmap.c $(CFLAGS) -o $@ @echo "done." #### CELL_DEPS = $(HEADER_DIR)/Cell.h \ $(HEADER_DIR)/CoreConst.h \ $(HEADER_DIR)/Core3DMath.h $(OBJECT_DIR)/Cell.o: $(SOURCE_DIR)/Cell.cpp $(CELL_DEPS) @echo -n " Compiling 'Cell.cpp'..." @$(CC) -c $(SOURCE_DIR)/Cell.cpp $(CFLAGS) -o $@ @echo "done." #### CRYSTALCELL_DEPS = $(HEADER_DIR)/CrystalCell.h \ $(HEADER_DIR)/Cell.h \ $(HEADER_DIR)/ANSR.h \ $(HEADER_DIR)/CoreConst.h \ $(HEADER_DIR)/Core3DMath.h $(OBJECT_DIR)/CrystalCell.o: $(SOURCE_DIR)/CrystalCell.cpp $(CRYSTALCELL_DEPS) @echo -n " Compiling 'CrystalCell.cpp'..." @$(CC) -c $(SOURCE_DIR)/CrystalCell.cpp $(CFLAGS) -o $@ @echo "done." #### TUBULEBASIS_DEPS = $(HEADER_DIR)/TubuleBasis.h \ $(HEADER_DIR)/CrystalCell.h \ $(HEADER_DIR)/CoreConst.h \ $(HEADER_DIR)/Core3DMath.h \ $(HEADER_DIR)/Bitmap.h $(OBJECT_DIR)/TubuleBasis.o: $(SOURCE_DIR)/TubuleBasis.cpp $(TUBULEBASIS_DEPS) @echo -n " Compiling 'TubuleBasis.cpp'..." @$(CC) -c $(SOURCE_DIR)/TubuleBasis.cpp $(CFLAGS) -o $@ @echo "done." #### GRAPHITE_DEPS = $(HEADER_DIR)/CrystalCell.h \ $(HEADER_DIR)/Constants.h \ $(HEADER_DIR)/ANSR.h $(OBJECT_DIR)/graphite.o: $(SOURCE_DIR)/graphite.cpp $(GRAPHITE_DEPS) @echo -n " Compiling 'graphite.cpp'..." @$(CC) -c $(SOURCE_DIR)/graphite.cpp $(CFLAGS) -o $@ @echo "done." #### DIAMOND_DEPS = $(HEADER_DIR)/CrystalCell.h \ $(HEADER_DIR)/Constants.h \ $(HEADER_DIR)/ANSR.h $(OBJECT_DIR)/diamond.o: $(SOURCE_DIR)/diamond.cpp $(DIAMOND_DEPS) @echo -n " Compiling 'diamond.cpp'..." @$(CC) -c $(SOURCE_DIR)/diamond.cpp $(CFLAGS) -o $@ @echo "done." #### FCC_DEPS = $(HEADER_DIR)/CrystalCell.h \ $(HEADER_DIR)/Constants.h \ $(HEADER_DIR)/ANSR.h $(OBJECT_DIR)/fcc.o: $(SOURCE_DIR)/fcc.cpp $(FCC_DEPS) @echo -n " Compiling 'fcc.cpp'..." @$(CC) -c $(SOURCE_DIR)/fcc.cpp $(CFLAGS) -o $@ @echo "done." #### TUBEGEN_DEPS = $(HEADER_DIR)/CrystalCell.h \ $(HEADER_DIR)/CoreConst.h \ $(HEADER_DIR)/ANSR.h \ $(HEADER_DIR)/eprintf.h \ $(HEADER_DIR)/TubuleBasis.h $(OBJECT_DIR)/TubeGen.o: $(SOURCE_DIR)/TubeGen.cpp $(TUBEGEN_DEPS) @echo -n " Compiling 'TubeGen.cpp'..." @$(CC) -c $(SOURCE_DIR)/TubeGen.cpp $(CFLAGS) -o $@ -DPROGRAM_VERSION=$(VERSION) @echo "done."