-
Notifications
You must be signed in to change notification settings - Fork 14
/
Makefile
107 lines (82 loc) · 3.01 KB
/
Makefile
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
# 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)
# Set the following to true/false depending whetehr your terminal
# does support ANSI colors.
COLOR = true
# ------------------------------------------------ macros for this package
PKG_NAME=ynewuoa
PKG_I=newuoa.i
OBJS=ynewuoa.o newuoa.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= -I.. -DINTEGER=long -USINGLE_PRECISION
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=
# non-pkg.i include files for this package, if any
PKG_I_EXTRA=
# -------------------------------- 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
include $(Y_MAKEDIR)/Make.cfg
include $(Y_MAKEDIR)/Makepkg
include $(Y_MAKEDIR)/Make$(TGT)
# 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
newuoa.o: ../newuoa.c ../newuoa.h
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
ynewuoa.o: ynewuoa.c ../newuoa.h
newuoa-yor.out: newuoa.i newuoa-test.i $(PKG_DLL)
$(Y_EXE) -batch newuoa-test.i >$@
test: newuoa-yor.out ../newuoa-orig.out
@if diff $^ >newuoa-yor.diff; then \
msg="test of Yorick plugin successful"; \
if ${COLOR}; then \
/bin/echo -e "\e[1;32m$${msg}\e[0;39;49m"; \
else \
echo "$${msg}"; \
fi; \
else \
msg="test of Yorick plugin failed (see file newuoa-yor.diff)"; \
if ${COLOR}; then \
/bin/echo -e "\e[1;31m$${msg}\e[0;39;49m"; \
else \
echo "$${msg}"; \
fi; \
fi
# -------------------------------------------------------- end of Makefile