📄 makefile.in
字号:
# libctl: flexible Guile-based control files for scientific software# Copyright (C) 1998 Steven G. Johnson## This file may be used without restriction. It is in the public# domain, and is NOT restricted by the terms of any GNU license.## This library is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU# Library General Public License for more details.## Steven G. Johnson can be contacted at stevenj@alum.mit.edu.SHELL = @SHELL@############################################################################### Makefile.in for programs using libctl (assumes that autoconf is# being used, of course). You should only need to change the definitions# in this section of the file.SPECIFICATION_FILE = mpb.scmPROGRAM_NAME = mpb# what is printed out when invoking your program with --version:VERSION_STRING = "MIT Photonic Bands @MPB_VERSION@, Copyright (C) 1999-2001 by MIT."# objects for program sources:OBJECTS = mpb.o epsilon.o fields.o epsilon_file.o matrix-smob.o field-smob.o \ geom.o # since we use the geom.scm utilitiesHEADERS = # any extra header files you are dependent onMY_LIBS = ../src/maxwell/maxwell.a \ ../src/matrixio/matrixio.a \ ../src/matrices/matrices.a \ ../src/util/util.aMY_LDFLAGS = # extra -L flags go hereMY_CPPFLAGS = -I. -I../src/util -I../src/matrices -I../src/matrixio \ -I../src/maxwellMY_DEFS = -DHAVE_CTL_HOOKS=1 -DHAVE_CTL_EXPORT_HOOK=1# The following variables should be detected and set by autoconf:# libctl install. dir., e.g. /usr/local/share/libctlLIBCTL_DIR = @LIBCTL_DIR@# gen-ctl-io programGEN_CTL_IO = @GEN_CTL_IO@############################################################################### don't (normally) edit past here ###############################################################################CC = @CC@CFLAGS = @CFLAGS@CPPFLAGS = -I. $(MY_CPPFLAGS) @CPPFLAGS@DEFS = @DEFS@ $(CTL_DEFS) $(MY_DEFS)##############################################################################LIBS = $(MY_LIBS) @LIBS@LDFLAGS = $(MY_LDFLAGS) @LDFLAGS@##############################################################################INSTALL = @INSTALL@prefix = @prefix@mandir = @mandir@# c.f. AC_ARG_PROGRAM autoconf docs:transform=@program_transform_name@@SET_MAKE@##############################################################################CTL_DEFS = -DCTL_SCM='"'$(LIBCTL_DIR)/base/ctl.scm'"' \ -DINCLUDE_SCM='"'$(LIBCTL_DIR)/base/include.scm'"' \ -DSPEC_SCM='"'$(prefix)/share/libctl/specs/$(SPECIFICATION_FILE)'"' \ -DVERSION_STRING='"'$(VERSION_STRING)'"'##############################################################################ALL_OBJECTS = main.o ctl-io.o $(OBJECTS)all: $(PROGRAM_NAME) mpb-split-tmpmain.o: main.c ctl-io.hmpb.o: mpb.c ctl-io.h mpb.hepsilon.o: epsilon.c ctl-io.h mpb.hfields.o: fields.c ctl-io.h mpb.hmatrix-smob.o: matrix-smob.c matrix-smob.h my-smob.h ctl-io.h mpb.hfield-smob.o: field-smob.c field-smob.h my-smob.h ctl-io.h mpb.hctl-io.c ctl-io.h: $(SPECIFICATION_FILE) $(GEN_CTL_IO) $(SPECIFICATION_FILE) $(LIBCTL_DIR)# Some hackery follows. The program executable needs to have the# location of the spec file hard-coded into it. However, we have to# hard-code the location that the spec file *will* be in when it is# installed...but we would still like to be able to run the program# before installing it. So, the actual executable is named# .$(PROGRAM_NAME) (notice the leading dot), and $(PROGRAM_NAME) is a# shell script that calls the executable, specifying the uninstalled# spec file location via the --spec-file command-line argument. 'make# install' copies the real executable and spec files into their final# locations.$(PROGRAM_NAME): ctl-io.h $(ALL_OBJECTS) $(MY_LIBS) $(CC) $(LDFLAGS) $(CFLAGS) $(ALL_OBJECTS) $(LIBS) -o .$@ rm -f $@ echo '#!/bin/sh' > $@ echo `pwd`/.$@ --spec-file=`pwd`/$(SPECIFICATION_FILE) '$$*' >> $@ chmod u+x $@main.c: $(LIBCTL_DIR)/base/main.c cp -f $(LIBCTL_DIR)/base/main.c $@geom.c: $(LIBCTL_DIR)/utils/geom.c cp -f $(LIBCTL_DIR)/utils/geom.c $@.c.o: $(HEADERS) ctl-io.h $(CC) -c $(DEFS) $(CPPFLAGS) $(CFLAGS) $< -o $@# 'make install' target. This is supplied here so that you can easily# copy this Makefile into your own program, but it should not be# called for the example program included with libctl (and is not, at# least by the top-level Makefile). Two reasons: first, you don't# really want to install the example program; and second, it won't# work because LIBCTL_DIR is not set to the global (post-install)# location of libctl.install: install-mpb @INSTALL_MPB_SPLIT@install-mpb: $(PROGRAM_NAME) $(INSTALL) -d $(prefix)/bin $(INSTALL) -m 0755 -s .$(PROGRAM_NAME) $(prefix)/bin/`echo $(PROGRAM_NAME)|sed '$(transform)'` $(INSTALL) -d $(prefix)/share/libctl/specs $(INSTALL) -m 0644 $(SPECIFICATION_FILE) $(prefix)/share/libctl/specs $(INSTALL) -d $(mandir)/man1 $(INSTALL) -m 0644 $(PROGRAM_NAME).1 $(mandir)/man1mpb-split-tmp: rm -f mpb-split-tmp mpb_name=`echo mpb | sed '$(transform)'`; \ sed "s%\./mpb%"$(prefix)/bin/"$$mpb_name%g" mpb-split > mpb-split-tmp;install-mpb-split: mpb-split-tmp mpb_name=`echo mpb | sed '$(transform)'`; \ $(INSTALL) -m 0755 mpb-split-tmp $(prefix)/bin/$${mpb_name}-split $(INSTALL) -d $(mandir)/man1 $(INSTALL) -m 0644 mpb-split.1 $(mandir)/man1clean: rm -f $(ALL_OBJECTS) ctl-io.c ctl-io.h main.c geom.c \ .$(PROGRAM_NAME) $(PROGRAM_NAME) core mpb-split-tmp##############################################################################check: $(PROGRAM_NAME) ./$(PROGRAM_NAME) examples/check.ctl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -