forked from polyml/polyml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.am
141 lines (110 loc) · 3.25 KB
/
Makefile.am
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
137
138
139
140
141
AUTOMAKE_OPTIONS=foreign
ACLOCAL_AMFLAGS= -I m4 --install
BOOTSTRAP_OPTIONS =
if INTINFISINT
POLYIMPORT_OPTIONS = --intIsIntInf
else
POLYIMPORT_OPTIONS =
endif
DIST_SUBDIRS = libpolyml libpolymain modules
SUBDIRS = libpolyml libpolymain . modules
bin_PROGRAMS = polyimport poly
dist_bin_SCRIPTS = polyc
man_MANS = poly.1 polyimport.1 polyc.1
# Select the architecture-specific pre-built compiler
if ARCHI386
POLYIMPORT = $(srcdir)/imports/polymli386.txt
else
if ARCHINTERPRET
POLYIMPORT = $(srcdir)/imports/polymlint.txt
else
if ARCHINTERPRET64
POLYIMPORT = $(srcdir)/imports/polymlint64.txt
else
if ARCHX86_64
if WINDOWS64CALLS
POLYIMPORT = $(srcdir)/imports/polymlx86_64win.txt
else
POLYIMPORT = $(srcdir)/imports/polymlx86_64sysv.txt
endif
else
endif
endif
endif
endif
noinst_HEADERS = polyexports.h
poly_LDFLAGS=
polyimport_LDFLAGS=
POLYRESOURCES=
EXTRALDFLAGS=
if NATIVE_WINDOWS
if ARCHINTERPRET64
EXTRALDFLAGS += -Wl,-u,WinMain
else
if ARCHX86_64
EXTRALDFLAGS += -Wl,-u,WinMain
else
EXTRALDFLAGS += -Wl,-u,_WinMain@16 -Wl,--large-address-aware
endif
endif
if WINDOWSGUI
EXTRALDFLAGS += -mwindows
polyimport_LDFLAGS += -mwindows
else
EXTRALDFLAGS += -mconsole
polyimport_LDFLAGS += -mconsole
endif
poly_LDFLAGS += $(EXTRALDFLAGS)
POLYOBJECTFILE = polyexport.obj
POLYRESOURCES += polyresource.o
OBJECTSUFFIX=obj
else
POLYOBJECTFILE = polyexport.o
OBJECTSUFFIX=o
endif
if MACOSLDOPTS
poly_LDFLAGS += -Wl,-no_pie
endif
poly_SOURCES =
poly_LDADD = $(POLYOBJECTFILE) $(POLYRESOURCES) libpolymain/libpolymain.la libpolyml/libpolyml.la
polyimport_SOURCES = polyimport.c
polyimport_LDADD = $(POLYRESOURCES) libpolyml/libpolyml.la
EXTRA_DIST = \
imports/polymli386.txt \
imports/polymlint64.txt \
imports/polymlint.txt \
imports/polymlx86_64.txt \
libpolyml/x86asm.asm \
exportPoly.sml \
poly.1 \
polyimport.1
dist-hook:
find {basis,mlsource}/ -type d -exec mkdir $(distdir)/{} \;
find {basis,mlsource}/ -type f -not -name .svn \
-exec cp -pf {} $(distdir)/{} \;
# Unix.
polyexport.o: polyimport exportPoly.sml polytemp.txt
./polyimport $(POLYIMPORT_OPTIONS) polytemp.txt -I $(srcdir) < $(srcdir)/exportPoly.sml
# Windows. When building on Windows make sure that we provide both stdin and stdout to suppress the GUI.
polyexport.obj: polyimport$(EXEEXT) exportPoly.sml polytemp.txt
./polyimport $(POLYIMPORT_OPTIONS) polytemp.txt -I $(srcdir) < $(srcdir)/exportPoly.sml | cat
polyresource.o: PolyML.rc poly.ico
$(WINDRES) -o polyresource.o $(srcdir)/PolyML.rc
polytemp.txt: $(POLYIMPORT)
cp $(POLYIMPORT) polytemp.txt
#polyc: buildpolyc
# ./buildpolyc LINK=\"$(CC)\" BINDIR=\"$(bindir)\" LIBDIR=\"$(libdir)\" LIBS=\"$(LIBS)\" EXTRALDFLAGS=\"$(EXTRALDFLAGS)\" SUFFIX=\"$(OBJECTSUFFIX)\"
# This builds the compiler but does not update the files in the imports directory.
# It then builds a version of poly containing the new compiler.
compiler: all
./poly $(BOOTSTRAP_OPTIONS) --error-exit < mlsource/BuildExport.sml
$(MAKE)
reboot: compiler
cp polytemp.txt $(POLYIMPORT)
clean-local:
rm -f *.obj polytemp.txt polyc
# Run tests
check-local: all
echo "val () = use \"$(srcdir)/Tests/RunTests\"; val () = OS.Process.exit(if runTests \"$(srcdir)/Tests\" then OS.Process.success else OS.Process.failure):unit;" | ./poly
# Retain this target for backwards compatibility
tests: check