1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
# Where are the sources? (automatically filled in by configure script)
srcdir=.
# These values filled in by: yorick -batch make.i
Y_MAKEDIR=
Y_EXE=
Y_EXE_PKGS=
Y_EXE_HOME=
Y_EXE_SITE=
Y_HOME_PKG=
# ----------------------------------------------------- optimization flags
# options for make command line, e.g.- make COPT=-g TGT=exe
COPT=$(COPT_DEFAULT)
TGT=$(DEFAULT_TGT)
# ------------------------------------------------ macros for this package
PKG_NAME=yor_nfft
PKG_I=${srcdir}/nfft.i
OBJS=yor_nfft.o
# change to give the executable a name other than yorick
PKG_EXENAME=yorick
# PKG_DEPLIBS=-Lsomedir -lsomelib for dependencies of this package
PKG_DEPLIBS=
# set compiler (or rarely loader) flags specific to this package
PKG_CFLAGS=
PKG_LDFLAGS=
# list of additional package names you want in PKG_EXENAME
# (typically $(Y_EXE_PKGS) should be first here)
EXTRA_PKGS=$(Y_EXE_PKGS)
# list of additional files for clean
PKG_CLEAN=
# autoload file for this package, if any
PKG_I_START=${srcdir}/nfft-start.i
# non-pkg.i include files for this package, if any
PKG_I_EXTRA=
# released files and archive name
RELEASE_FILES = AUTHORS LICENSE Makefile NEWS README TODO configure \
m3d_nfft.c nfft-start.i nfft-tests.i nfft.i yor_nfft.c
RELEASE_NAME = ${srcdir}/releases/ynfft-$(RELEASE_VERSION).tar.bz2
RELEASE_VERSION = 1.0.4
# -------------------------------- standard targets and rules (in Makepkg)
# set macros Makepkg uses in target and dependency names
# DLL_TARGETS, LIB_TARGETS, EXE_TARGETS
# are any additional targets (defined below) prerequisite to
# the plugin library, archive library, and executable, respectively
PKG_I_DEPS=$(PKG_I)
Y_DISTMAKE=distmake
ifeq (,$(strip $(Y_MAKEDIR)))
$(info *** WARNING *** Y_MAKEDIR not defined, you may run 'yorick -batch make.i' first.)
else
include $(Y_MAKEDIR)/Make.cfg
include $(Y_MAKEDIR)/Makepkg
include $(Y_MAKEDIR)/Make$(TGT)
endif
# override macros Makepkg sets for rules and other macros
# see comments in Y_HOME/Makepkg for a list of possibilities
# if this package built with mpy: 1. be sure mpy appears in EXTRA_PKGS,
# 2. set TGT=exe, and 3. uncomment following two lines
# Y_MAIN_O=$(Y_LIBEXE)/mpymain.o
# include $(Y_MAKEDIR)/Makempy
# configure script for this package may produce make macros:
# include output-makefile-from-package-configure
# reduce chance of yorick-1.5 corrupting this Makefile
MAKE_TEMPLATE = protect-against-1.5
# ------------------------------------- targets and rules for this package
# simple example:
#myfunc.o: myapi.h
# more complex example (also consider using PKG_CFLAGS above):
#myfunc.o: myapi.h myfunc.c
# $(CC) $(CPPFLAGS) $(CFLAGS) -DMY_SWITCH -o $@ -c myfunc.c
%.o: ${srcdir}/%.c
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
tests: $(PKG_DLL)
$(Y_EXE) -batch nfft-tests.i
yor_nfft.o: ${srcdir}/yor_nfft.c ${srcdir}/m3d_nfft.c
$(CC) -I. -DVERSION=\"$(RELEASE_VERSION)\" $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
release: $(RELEASE_NAME)
$(RELEASE_NAME):
git checkout master
@if test "x$(RELEASE_VERSION)" = "x"; then \
echo >&2 "set package version: make RELEASE_VERSION=... archive"; \
else \
dir=`basename "$(RELEASE_NAME)" .tar.bz2`; \
if test "x$$dir" = "x" -o "x$$dir" = "x."; then \
echo >&2 "bad directory name for archive"; \
elif test -d "$$dir"; then \
echo >&2 "directory $$dir already exists"; \
else \
mkdir -p "$$dir"; \
for file in $(RELEASE_FILES); do \
src="${srcdir}/$$file"; \
dst="$$dir/$$file"; \
if test "$$file" = "Makefile"; then \
sed <"$$src" >"$$dst" -e 's/^\( *Y_\(MAKEDIR\|EXE\(\|_PKGS\|_HOME\|_SITE\)\|HOME_PKG\) *=\).*/\1/'; \
touch -r "$$src" "$$dst"; \
else \
cp -p "$$src" "$$dst"; \
fi; \
done; \
rm -f "$$dir"/*~ "$$dir"/*/*~; \
echo "$(RELEASE_VERSION)" > "$$dir/VERSION"; \
tar jcf "$(RELEASE_NAME)" "$$dir"; \
rm -rf "$$dir"; \
echo "$(RELEASE_NAME) created"; \
fi; \
fi;
.PHONY: clean release tests config
# -------------------------------------------------------- end of Makefile
|