File: Makefile.in

package info (click to toggle)
slang-slirp 1.9.8-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,064 kB
  • ctags: 4,861
  • sloc: ansic: 9,776; sh: 3,051; makefile: 702; fortran: 336; cpp: 275; pascal: 6
file content (242 lines) | stat: -rw-r--r-- 6,345 bytes parent folder | download
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# -*- sh -*-
############################################################################
#
# Makefile for SLIRP, the (Sl)ang (I)nte(r)face (P)ackage
#
# Copyright (C) 2003-2006 Massachusetts Institute of Technology
# Copyright (C) 2002 Michael S. Noble <mnoble@space.mit.edu>
#
############################################################################

SHELL	= /bin/sh
RM	= \rm -f
RM_R    = \rm -rf
LN	= @LN_S@
EXEEXT	= @EXEEXT@
PATH_SEP = @PATH_SEP@
CONFIG_DIR = @CONFIG_DIR@
SLSH_LOAD_PATH = @SLSH_LOAD_PATH@

SCRIPTS =\
	slirp.sl \
	slirpdb.sl \
	slirpc++.sl \
	slirpf2c.sl \
	slirpmaps.sl \
	slirputils.sl \
	builtins.sl\
	\
	slsh.rc\
	autoload.sl\
	require.sl\
	arrayfuns.sl

SUPPORT_CODE =\
	commblock.h \
	commblock.c \
	fortran.c \
	fortran.h \
	c++cfront.h \
	c++.c \
	pack.c \
	dispatch.c \
	nullargs.c \
	ntstrarr.c \
	refs.c \
	vectorize.h \
	vectorize.c \
	debug.c \
	usage.c \
	opaques.c \
	intro.h \
	copyright.h \
	unix.mf

IMPORTIFY=admin/importify
PREP=preproc
PREP_MODULE_CODE = $(PREP)/$(PREP)-module.c
SLSHEXT=slshext
SLSHEXT_CODE=$(SLSHEXT).c
MAN_DIRS = man1
MAN_PAGES = man1/slirpsh.1 man1/slirp.1

.SUFFIXES: .sl .slc

CONF_DIR="$(CONFIG_DIR)"
PATH_DIR=".$(PATH_SEP)$(CONFIG_DIR)$(PATH_SEP)$(SLSH_LOAD_PATH)"

#---------------------------------------------------------------------------
# Section: Compiler and related libraries
#---------------------------------------------------------------------------

CC              = @CC@ $(PROFILE)
CFLAGS          = @CFLAGS@ @SLANG_INC@
LDFLAGS         = @LDFLAGS@ @DYNAMIC_LINK_FLAGS@
DL_LIB		= @DYNAMIC_LINK_LIB@
SLANGLIB	= @SLANG_LIB@ -lslang
SO_DEP_LIBS	= @SO_DEP_LIBS@

#---------------------------------------------------------------------------
# Primary build macros and rules (NB: 'all' is first target defined)
#---------------------------------------------------------------------------

.PHONY: all clean distclean install uninstall

EXENAME = slirpsh$(EXEEXT)
all:	$(EXENAME) slsh $(SCRIPTS)

SLIRPSH_NAME=$(EXENAME)
RPATH=@RPATH@
$(SLIRPSH_NAME): slirpsh.c
	@echo "" 
	@echo "Bootstrapping code generator ..." 
	@echo ""
	$(CC) -I. -I$(PREP) $(CFLAGS) \
	   -DLINKAGE= \
	   -DSLSH_CONF_DIR='$(CONF_DIR)' \
	   -DSLSH_PATH='$(PATH_DIR)' $? -o $@ \
	   $(SLANGLIB) $(LDFLAGS) $(RPATH) $(SO_DEP_LIBS)

installable_slirpsh:
	$(MAKE) -e slirpsh.ins \
		CONF_DIR=\"$(install_pkg_dir)\" \
		PATH_DIR=\"$(install_pkg_dir)\" \
		SLIRPSH_NAME=slirpsh.ins

slsh: $(EXENAME)
	$(RM) $@
	$(LN) $? $@

# This approach is cleaner than trying to use the sed append command,
# which requires multiple lines and is ugly to embed w/in Makefiles
slirpsh.h:
	echo "#include <slang.h>" > $@

slirpsh.c: slirpsh.h slsh.c $(PREP_MODULE_CODE) $(SLSHEXT_CODE) $(IMPORTIFY)
	cat slsh.c $(PREP_MODULE_CODE) $(SLSHEXT_CODE) \
		| sed 's/<slang.h>/"slirpsh.h"/' > $@.tmp
	$(IMPORTIFY) -m real_main -p -q -s $@.tmp $(PREP) $(SLSHEXT) > $@
	-$(RM) $@.tmp

#---------------------------------------------------------------------------
# Section: Installation rules
#---------------------------------------------------------------------------

prefix		    = @prefix@
exec_prefix	    = @exec_prefix@
datarootdir	    = @datarootdir@
DESTDIR		    = 
install_bin_dir     = $(DESTDIR)@bindir@
install_pkg_dir     = $(DESTDIR)@datadir@/slirp
install_man_dir     = $(DESTDIR)@mandir@

MKINSDIR     = admin/mkinsdir.sh
INSTALLER    = @INSTALL@
INSTALL_DATA = $(INSTALLER) -m 644
INSTALL_BIN  = $(INSTALLER) -m 755
INSTALL_SCRIPTS     = $(SCRIPTS) $(SUPPORT_CODE)

install_dirs:
	$(MKINSDIR) $(install_pkg_dir)
	$(MKINSDIR) $(install_bin_dir)
	for m in $(MAN_DIRS) ; do \
	   $(MKINSDIR) $(install_man_dir)/$$m ; \
	done

install_manpages:
	@if [ -d CVS ] ; then \
	   $(MAKE) docs ; \
	fi
	for m in $(MAN_PAGES) ; do \
	   $(INSTALL_DATA) doc/man/$$m $(install_man_dir)/$$m ; \
	done

install_exes: installable_slirpsh
	$(INSTALL_BIN) slirpsh.ins $(install_bin_dir)/$(EXENAME)
	$(INSTALL_BIN) slirp.ins $(install_bin_dir)/slirp

install_packages:
	@for F in $(INSTALL_SCRIPTS); do \
		echo $(INSTALL_DATA) $$F $(install_pkg_dir); \
		$(INSTALL_DATA) $$F $(install_pkg_dir); \
		if [ $$? -ne 0 ] ; then false; fi ;\
	done
	$(INSTALL_BIN) $(MKINSDIR) $(install_pkg_dir)

install: all install_dirs install_exes install_packages install_manpages

install_static:		# contribute nothing to SLgtk static binary distro

uninstall:
	@echo
	@echo Removing installed SLIRP components ...
	@echo
	-for F in $(INSTALL_SCRIPTS) ; do \
		$(RM) $(install_pkg_dir)/$$F ; \
	done
	$(RM) $(install_bin_dir)/slirp
	$(RM) $(install_bin_dir)/$(EXENAME)
	$(RM) $(install_pkg_dir)/mkinsdir.sh
	for m in $(MAN_PAGES) ; do \
	   $(RM) $(install_man_dir)/$$m ; \
	done


#---------------------------------------------------------------------------
# Miscellaneous informational/housekeeping rules
#---------------------------------------------------------------------------

EXAMPLES = kitchensink cpp fortran makef stubs gl vec
clean:
	-$(RM) *.slc slsh $(EXENAME) slirpsh.* *~
	@for dir in $(EXAMPLES) openmp ; do \
	   (cd examples/$$dir; $(MAKE) clean) ; \
	done

distclean: clean
	(cd doc/tm ; $(MAKE) distclean)
	@for dir in $(EXAMPLES) openmp ; do \
	   (cd examples/$$dir; $(MAKE) distclean) ; \
	done
	-$(RM) slirputils.sl slirp builtins.sl Makefile intro.h \
		config.h config.log config.status unix.mf \
		examples/Makefile.inc slirp.ins

test:
	@$(MAKE)
	@for dir in $(EXAMPLES) ; do \
	   $(MAKE) TEST_DIR=examples/$$dir test_dir ; \
	done

test_all: test
	@$(MAKE) TEST_DIR=examples/openmp test_dir ; \

QUIET=>/dev/null
test_dir:
	@echo
	@echo Testing $(TEST_DIR) ...
	@(cd $(TEST_DIR) ; $(MAKE) $(QUIET) 2>&1; $(MAKE) test $(QUIET))
	@echo "				... passed"

warnings:
	if test -d CVS ; then \
	   $(MAKE) warnings_real ; \
	fi

# WARN_NEX turns off -Wnested-externs for g++, since 3.x versions now complain
warnings_real:
	cd examples/kitchensink ;$(MAKE) >/dev/null ; $(MAKE) warnings
	cd examples/cpp    ;$(MAKE) >/dev/null ; $(MAKE) -e \
						WARN_NEX= WARN_PROTO= warnings
	cd examples/fortran;$(MAKE) >/dev/null ; $(MAKE) -e WARN_PROTO= warnings
	cd examples/stubs  ;$(MAKE) >/dev/null ; $(MAKE) -e \
						WARN_NEX= WARN_PROTO= warnings

docs:
	(cd doc/tm; $(MAKE) install)

VERSION="@SLIRP_VERSION_STRING@@SLIRP_REVISION@"
srcdist: test warnings docs
	packit -a slirp slgtk/slirp $(VERSION)

dist: srcdist