## ## PDP1 Makefile vim:ts=4 ## vim600:fdm=marker fdl=0 fdc=3: ## User setup {{{ ## Where the source code of xpdp are DESTDIR = $(HOME)/dipl ## Location of XGrafix library XGPATH = $(HOME)/dipl ## Name of Xgrafif library (without lib prefix and .a extension!) ## ( libXGC250.a ---> XGC250 ) XGLIB_NAME = XGC250 # }}} ### Compiler flags and other programs{{{ CDEBUGFLAGS = -g -ggdb -DDEBUG CFLAGS = -Wall -O2 $(CDEBUGFLAGS) LIBS = -ltk8.3 -ltcl8.3 -lX11 -lm -ldl -lXpm CPPFLAGS = LDFLAGS = -dynamic -L$(XGPATH)/lib/xgrafix -l$(XGLIB_NAME) -L/usr/X11R6/lib DEFS = -DPDP1_PATH=\"$(DESTDIR)/src\" INCLUDES = -I$(srcdir) -I$(top_builddir) -I$(XGPATH)/include CC = gcc CCLINK = $(CC) CCC = $(CC) -c -I$(srcdir) $(CFLAGS) CPP_MM = M DEPEND_CFLAGS = $(CDEBUGFLAGS) $(EXTRA_DEFINES) $(INCLUDES) CPP_DEPEND = $(CC) -I$(srcdir) -M$(CPP_MM) $(DEPEND_CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) LTCOMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) echo_COMPILE = $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) echo_LTCOMPILE = $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@ RM = rm -f TAGS = ctags STRIP = strip MKDIR = mkdir -p INSTALL = install INST_ALL_FLAGS = -c INST_DIR_FLAGS = -m 0755 INST_BIN_FLAGS = -m 0755 INST_LIB_FLAGS = -m 0644 INST_MAN_FLAGS = -m 0444 INST_DAT_FLAGS = -m 0444 INST_APP_FLAGS = $(INST_DAT_FLAGS) # }}} # Directories {{{ srcdir = . top_builddir = . # }}} # Targets {{{ PROGRAM_NAME = xpdp1 PROGRAM = $(PROGRAM_NAME).bin HEADERS = pdp1.h xsect.h SOURCES = $(srcdir)/argonmcc.c \ $(srcdir)/fft.c \ $(srcdir)/field.c \ $(srcdir)/gather.c \ $(srcdir)/heliummcc.c \ $(srcdir)/initwin.c \ $(srcdir)/load.c \ $(srcdir)/maxwellv.c \ $(srcdir)/mccdiaginit.c \ $(srcdir)/move.c \ $(srcdir)/neonmcc.c \ $(srcdir)/oxygenmcc.c \ $(srcdir)/padjus.c \ $(srcdir)/pdp1.c \ $(srcdir)/prest.c \ $(srcdir)/start.c \ $(srcdir)/xsect.c OBJECTS = $(top_builddir)/objects/fft.o \ $(top_builddir)/objects/field.o \ $(top_builddir)/objects/move.o \ $(top_builddir)/objects/gather.o \ $(top_builddir)/objects/pdp1.o \ $(top_builddir)/objects/start.o \ $(top_builddir)/objects/load.o \ $(top_builddir)/objects/prest.o \ $(top_builddir)/objects/padjus.o \ $(top_builddir)/objects/initwin.o \ $(top_builddir)/objects/maxwellv.o \ $(top_builddir)/objects/mccdiaginit.o \ $(top_builddir)/objects/xsect.o \ $(top_builddir)/objects/argonmcc.o \ $(top_builddir)/objects/heliummcc.o \ $(top_builddir)/objects/neonmcc.o \ $(top_builddir)/objects/oxygenmcc.o DATA_FILES = inp \ inp/ambipolar.inp \ inp/bgp.inp \ inp/bmaxwell.inp \ inp/child.inp \ inp/colldiff.inp \ inp/collessdiff.inp \ inp/crfda.inp \ inp/dche.inp \ inp/diffusion.inp \ inp/ecr.inp \ inp/epdiode.inp \ inp/hull.inp \ inp/igor.inp \ inp/maxwell1.inp \ inp/maxwella.inp \ inp/maxwelle.inp \ inp/maxwellep.inp \ inp/maxwello.inp \ inp/maxwelloxy.inp \ inp/os100M.inp \ inp/pbi.inp \ inp/piiia.inp \ inp/probe.inp \ inp/qmach.inp \ inp/rfdanc.inp \ inp/rfdhomo.inp \ inp/test.inp \ inp/ubohm.inp \ inp/vc.inp \ inp/vcwarm.inp \ inp/vrfda.inp \ inp/qmach \ inp/qmach/qmach.inp \ inp/qmach/qmach1.inp \ inp/rfsheath \ inp/rfsheath/rfsheath.inp DEP_FILES = $(top_builddir)/.deps/argonmcc.P \ $(top_builddir)/.deps/fft.P \ $(top_builddir)/.deps/field.P \ $(top_builddir)/.deps/gather.P \ $(top_builddir)/.deps/heliummcc.P \ $(top_builddir)/.deps/initwin.P \ $(top_builddir)/.deps/load.P \ $(top_builddir)/.deps/maxwellv.P \ $(top_builddir)/.deps/mccdiaginit.P \ $(top_builddir)/.deps/move.P \ $(top_builddir)/.deps/neonmcc.P \ $(top_builddir)/.deps/oxygenmcc.P \ $(top_builddir)/.deps/padjus.P \ $(top_builddir)/.deps/pdp1.P \ $(top_builddir)/.deps/prest.P \ $(top_builddir)/.deps/start.P \ $(top_builddir)/.deps/xsect.P # }}} all: $(PROGRAM) $(PROGRAM_NAME) # create shell script with exported LD_LIBRARY_PATH $(PROGRAM_NAME): $(PROGRAM_NAME).in Makefile sed 's,@LD_LIBRARY_PATH@,$(XGPATH)/lib/xgrafix,g; \ s,@PROGRAM@,$(DESTDIR)/bin/$(PROGRAM),g;' $< > $@ chmod u+x $@ $(PROGRAM): $(OBJECTS) $(LINK) $(OBJECTS) $(LIBS) DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) OBJECTS_MAGIC := $(shell mkdir objects > /dev/null 2>&1 || :) -include $(DEP_FILES) .SUFFIXES: .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< objects/%.o: %.c $(HEADERS) @echo '$(COMPILE) -c $<'; \ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -o $@ -c $< @-cp .deps/$(*F).pp .deps/$(*F).P; \ tr ' ' '\012' < .deps/$(*F).pp \ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ >> .deps/$(*F).P; \ rm .deps/$(*F).pp clean: -rm -f *.o core* *~ TAGS tags -rm -f $(PROGRAM_NAME) -rm -rf objects/ .deps/ tags: $(TAGS) -o TAGS *.[ch] install: install-bin install-data install-bin: $(PROGRAM) $(STRIP) $(PROGRAM) @if [ -d $(DESTDIR)/bin ]; then set +x; \ else (set -x; $(MKDIR) $(INST_DIR_FLAGS) $(DESTDIR)/bin); fi $(INSTALL) $(INST_ALL_FLAGS) $(PROGRAM) $(DESTDIR)/bin/$(PROGRAM) $(INSTALL) $(INST_ALL_FLAGS) $(INST_BIN_FLAGS) $(PROGRAM_NAME) $(DESTDIR)/bin/$(PROGRAM_NAME) install-data: @cd .. ; \ for file in $(DATA_FILES); do \ if test -d $$file; then \ echo "Creating directory $(DESTDIR)/$$file " ; \ (set -x; $(MKDIR) $(INST_DIR_FLAGS) $(DESTDIR)/$$file ); \ else \ if test -f $$file; then \ echo "Copying file $(DESTDIR)/$$file" ; \ $(INSTALL) $(INST_ALL_FLAGS) $(INST_DAT_FLAGS) \ $$file $(DESTDIR)/$$file ; \ fi; \ fi; \ done .PHONY: clean install install-bin install-data