1# BEGIN LICENSE BLOCK
2# Version: CMPL 1.1
3#
4# The contents of this file are subject to the Cisco-style Mozilla Public
5# License Version 1.1 (the "License"); you may not use this file except
6# in compliance with the License.  You may obtain a copy of the License
7# at www.eclipse-clp.org/license.
8# 
9# Software distributed under the License is distributed on an "AS IS"
10# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See
11# the License for the specific language governing rights and limitations
12# under the License. 
13# 
14# The Original Code is  The ECLiPSe Constraint Logic Programming System. 
15# The Initial Developer of the Original Code is  Cisco Systems, Inc. 
16# Portions created by the Initial Developer are
17# Copyright (C) 1988-2006 Cisco Systems, Inc.  All Rights Reserved.
18# 
19# Contributor(s): 
20# 
21# END LICENSE BLOCK
22
23# SCCS CONTROL BLOCK:
24#
25# $Id: Makefile.in,v 1.19 2014/02/07 15:04:40 jschimpf Exp $
26#
27# IDENTIFICATION:	Makefile.in
28#
29# DESCRIPTION:		Makefile for ECLiPSe kernel
30#
31#
32
33
34# *************** DIRECTORIES ***************
35
36top_srcdir	= @top_srcdir@
37top_builddir	= @top_builddir@
38
39# This is where the installation goes, default should be ../..
40PREFIX=@prefix@
41
42ARCH		= @ARCH@
43
44# The directory of the 'sepia' subsystem
45SEPIA		= ..
46
47# where to find our auxiliary libraries, e.g. lamsg, lshm etc.
48SYS_LIB		= $(top_builddir)/sys_lib/$(ARCH)
49# where to find library header files, e.g. amsg.h gmp.h, memman.h
50SYS_INCL	= $(top_builddir)/sys_include
51# where to find/install the runtime libraries
52RUN_LIB		= $(PREFIX)/lib/$(ARCH)
53# Relative ld-run-path for our libraries. This prevents the need
54# for LD_LIBRARY_PATH when loading from the right current directory
55RELRUNPATH	= .
56
57
58# where to find sources
59VPATH		= ../src
60
61# *************** MACROS ***************
62OBJECT =	sepia
63
64N_HEAP =	130 130
65T_HEAP =	130 140
66S_HEAP =	256 300
67X_HEAP =	256 600
68O_HEAP =	3000 0
69N_SEPIA =	$(OBJECT)
70T_SEPIA =	$(OBJECT)
71S_SEPIA =	s$(OBJECT)
72X_SEPIA =	x$(OBJECT)
73
74.SUFFIXES:	$(SUFFIXES) .S .i .@OBJECTS_SUFFIX@ .cxx
75
76# *************** Configuration dependent definitions ***************
77
78# ECLiPSe compiler flags
79
80ECO_DBG = off
81
82
83# C compiler flags and defines
84
85EXE = @EXEEXT@
86CC = @CC@
87CPP = @CPP@
88CXX = @CXX@
89CXXCPP = @CXXCPP@
90LD = @LD@
91AR = @AR@
92OPT_FLAGS = @OPT_FLAGS@ 
93OPT_FLAGS_EMU = @OPT_FLAGS_EMU@ 
94OPT_FLAGS_ARITH = @OPT_FLAGS_ARITH@ 
95LOCAL_FLAGS = @LOCAL_FLAGS@
96FLOAT_ROUND_FLAGS = @FLOAT_ROUND_FLAGS@
97CFLAGS = @CFLAGS@
98OBJECTS_SUFFIX = @OBJECTS_SUFFIX@
99LIB_PREFIX = @LIB_PREFIX@
100
101RANLIB = @RANLIB@
102
103
104# linker flags and libraries
105# For linking executables (prefer static):
106#	$(CC) $(LDFLAGS) -L$(SYS_LIB) -L(RUN_LIB) <obj> $(BASIC_LIBS) $(LIBS)
107# For linking executables (prefer dynamic):
108#	$(CC) $(LDFLAGS) -L(RUN_LIB) -L$(SYS_LIB) <obj> $(BASIC_LIBS) $(LIBS)
109# For linking shared objects:
110#	$(DYLD) $(DYNLDFLAGS) -L(RUN_LIB) -L$(SYS_LIB) <obj> $(BASIC_LIBS) $(LIBS)
111# For incremental linking:
112#	$(LD) -r <obj>
113
114DYLD = @DYLD@
115DYNLDFLAGS = @DYNLDFLAGS@ 
116LDFLAGS = @LDFLAGS@ 
117LIBS = @LIBS@
118GRAPHLIBS = @GRAPHLIBS@
119GMP_LIBDIR = @GMP_LIBDIR@
120GMP_LIB = @GMP_LIB@
121GMP_LD = @GMP_LD@
122LDTCL = @LDTCL@
123RUNPATH_LDFLAG = @RUNPATH_LDFLAG@
124RUNPATH_DYLDFLAG = @RUNPATH_DYLDFLAG@
125
126# postprocessor for emu.s
127
128OPTIMIZE = @OPTIMIZE@ 
129
130
131# *************** FLAGS ***************
132
133CPPFLAGS  = $(LOCAL_FLAGS) -I. -I$(SEPIA)/src -I$(SYS_INCL) @OS_INCLUDES@ -DOC -DDFID
134LINTFLAGS = -b -h -x -DNEW_ORACLE
135
136
137# *************** INCLUDES ***************
138
139EXT_INCLUDES =	external.h error.h sepia.h ec_public.h types.h config.h \
140		embed.h eclipse_cc.h eclipseclass.h eclipse.h intervals.h
141
142
143# *************** LIBRARIES ***************
144
145BASIC_LIBS =	@GMP_LD@ -lshm
146# GMP_EXE_LD is the static libgmp if rpath is not supported (e.g. MacOS X)
147BASIC_EXE_LIBS = @GMP_EXE_LD@ -lshm
148PAR_LIBS =	-lnsrv -lpds
149
150# *************** BUILDING OPTIONS **********
151
152BUILD_WITH_TCL = @BUILD_WITH_TCL@
153
154# *************** OBJECTS ***************
155
156COMMON_OBJECTS =	dict.o read.o lex.o \
157		emu.o proc_desc.o bip_tconv.o io.o write.o bip_comp.o \
158		mem.o operator.o bip_record.o \
159		bip_bag.o bip_heapevents.o bip_shelf.o bip_store.o \
160		bip_array.o bip_strings.o bip_serialize.o \
161		bip_db.o property.o term_copy.o bip_io.o \
162		procedure.o \
163		handle.o intervals.o \
164		bip_arith.o bigrat.o bip_module.o bip_control.o bip_delay.o \
165		bip_domain.o bip_misc.o elipsys_fd.o \
166		bip_load.o code.o init.o \
167		emu_c_env.o emu_util.o error.o external.o gc_stacks.o \
168		handlers.o printam.o \
169		addrmap.o eclipsedir.o embed.o os_support.o
170
171DEVSYS_OBJECTS = main.o
172
173SEPIA_OBJECTS =	$(DEVSYS_OBJECTS) $(COMMON_OBJECTS) $(EXT_OBJECTS)
174
175PAR_OBJECTS =	bip_parallel.o emu_par.o scheduler.o sch_util.o \
176		trace.o worker.o
177
178MPS_OBJECTS =	bip_mps.o upcalls.o
179
180DUMMYLIBS =	lib1.o lib2.o lib3.o lib4.o lib5.o lib6.o lib7.o \
181		dummy_mps.o dummy_par.o dummy_upcalls.o dummy_wm.o \
182		whereami_default.o
183
184ALLDUMMYLIBS = $(DUMMYLIBS) dummy_bigrat.o
185
186EXT_OBJECTS =
187
188# *************** Sources (for lint etc) ***************
189
190SEPIA_SRC =	$(COMMON_OBJECTS:%.o=%.c) $(DEVSYS_OBJECTS:%.o=%.c)
191PAR_SRC =	$(PAR_OBJECTS:%.o=%.c)
192MPS_SRC =	$(MPS_OBJECTS:%.o=%.c)
193SHM_SRC =	$(SHM_OBJECTS:%.o=%.c)
194LINT_SRC =	lamsg.c lbmsg.c lnsrv.c
195EG_SRC	=	Makefile.external eg.cc minimain.c
196
197
198# *************** Generic Rules ***************
199
200# force deletion of targets when command failed
201.DELETE_ON_ERROR:
202
203.c.o:
204	$(CC) $(OPT_FLAGS) $(CFLAGS) $(CPPFLAGS) -c $<
205
206.cc.o:
207	$(CXX) $(OPT_FLAGS) $(CFLAGS) $(CPPFLAGS) -c $<
208
209.S.o:
210	@S_TO_O@
211
212.c.i:
213	$(CPP) $(CPPFLAGS) -P $< > $*.i
214
215.cc.i:
216	$(CXXCPP) $(CPPFLAGS) -P $< > $*.i
217
218.cxx.i:
219	$(CXXCPP) $(CPPFLAGS) -P $< > $*.i
220
221@LL_C_SO@
222	@LD_C_SO@
223
224@PL_O_SO@
225	@PD_O_SO@
226
227
228
229# *************** Development Targets ***************
230
231default:	sepia$(EXE)
232
233# A statically linked standard development system, sepia kernel only
234# This is used during installation, e.g. for making .eco and .eci files
235sepia:		$(EXT_OBJECTS) $(DEVSYS_OBJECTS) $(LIB_PREFIX)eclipse.a whereami.o libdummies.a $(BOOT_ECOS)
236	$(CC) $(OPT_FLAGS) $(LDFLAGS) $(DEVSYS_OBJECTS) \
237		 $(LIB_PREFIX)eclipse.a $(EXT_OBJECTS) whereami.o \
238		-L$(SYS_LIB) \
239		$(RUNPATH_LDFLAG)$(GMP_LIBDIR) \
240		libdummies.a $(BASIC_EXE_LIBS) $(LIBS) -o $@
241
242# Similar for Windows
243sepia.exe:	$(EXT_OBJECTS) $(DEVSYS_OBJECTS) $(LIB_PREFIX)eclipse.dll whereami.o libdummies.a $(BOOT_ECOS)
244	$(CC) $(OPT_FLAGS) $(LDFLAGS) $(DEVSYS_OBJECTS) \
245		$(LIB_PREFIX)eclipse.dll $(EXT_OBJECTS) whereami.o \
246		-L$(SYS_LIB) \
247		$(RUNPATH_LDFLAG)$(GMP_LIBDIR) \
248		libdummies.a $(BASIC_EXE_LIBS) $(LIBS) -o $@
249
250
251# The default executable for the distribution (preferably dynamic, else static)
252# This requires an LD_LIBRARY_PATH, cannot give a meaningful run-path.
253# Order important: first RUN_LIB, then SYS_LIB (so we prefer dynamic libs)!
254# Note that we call this .exe even on Unix!
255eclipse.exe:	$(DEVSYS_OBJECTS) $(LIB_PREFIX)eclipse.$(OBJECTS_SUFFIX) libdummies.a
256	$(CC) $(LDFLAGS) $(DEVSYS_OBJECTS) \
257		$(LIB_PREFIX)eclipse.$(OBJECTS_SUFFIX) libdummies.a \
258		-L$(RUN_LIB) -L$(SYS_LIB) \
259		$(BASIC_LIBS) $(LIBS) -o $@
260
261
262# A sepia with mps
263msepia$(EXE):		$(DEVSYS_OBJECTS) $(COMMON_OBJECTS) mps.o whereami.o libdummies.a
264		$(CC) $(LDFLAGS) -L$(SYS_LIB) $(DEVSYS_OBJECTS) $(COMMON_OBJECTS) mps.o whereami.o $(PAR_LIBS) $(BASIC_LIBS) libdummies.a $(LIBS) -o $@
265
266# An eclipse parallel worker (includes mps)
267weclipse:	$(DEVSYS_OBJECTS) $(COMMON_OBJECTS) o parallel.o mps.o whereami.o libdummies.a
268		$(CC) $(LDFLAGS) -L$(SYS_LIB) $(DEVSYS_OBJECTS) $(COMMON_OBJECTS) parallel.o mps.o whereami.o $(PAR_LIBS) $(BASIC_LIBS) libdummies.a $(LIBS) -o $@
269
270# The worker manager
271peclipse:	wm.o whereami.o wm_interface.o eclipsedir.o os_support.o
272		$(CC) $(LDFLAGS) -L$(SYS_LIB) wm.o wm_interface.o whereami.o \
273		    eclipsedir.o os_support.o $(PAR_LIBS) $(BASIC_LIBS) $(GRAPHLIBS) $(LIBS) -o $@
274
275
276# *************** Embedding test programs ***************
277
278eg_c_test:	$(EXT_INCLUDES) eg_c_test.o libeclipse.a libdummies.a
279		$(CC) -o $@ eg_c_test.o \
280			-L$(RUN_LIB) -L$(SYS_LIB) -L. \
281			$(RUNPATH_LDFLAG)$(RUN_LIB) \
282			-leclipse -ldummies $(BASIC_LIBS) $(LIBS)
283
284eg_cc_test:	$(EXT_INCLUDES) eg_cc_test.o libeclipse.a libdummies.a
285		$(CXX) -o $@ eg_cc_test.o \
286			-L$(RUN_LIB) -L$(SYS_LIB) -L. \
287			$(RUNPATH_LDFLAG)$(RUN_LIB) \
288			-leclipse -ldummies $(BASIC_LIBS) $(LIBS)
289
290
291# make lint is called in the src directory
292# -I../sun4 is needed for config.h
293lint:
294		-$(LINT) $(LINTFLAGS) $(CPPFLAGS) -I../sun4 \
295			$(SEPIA_SRC) $(MPS_SRC) dummy_par.c $(SHM_SRC) \
296			$(LINT_SRC) -lm
297
298tags:
299		ctags -tw *.c *.h
300
301distclean:	clean
302		rm -f Makefile Makefile.external config.h INST_PARAMS
303		rm -f tags
304
305clean:		archclean
306
307archclean:
308		rm -f *.i *.o emu*.s *.a *.$(OBJECTS_SUFFIX)
309		rm -f sepia$(EXE) eclipse.exe
310		rm -f whereami.c eclipse_cc.h eclipse.def
311
312ecoclean:	bootecoclean
313		rm -rf $(ECO_LIB_DEST)
314
315# delete STABLE_ECLIPSE's boot-files only if AUX_SEPIA works
316bootecoclean:	boot_test
317		rm -rf $(ECO_BOOT_DEST)
318
319# *************** Libraries and Compound Objects ***************
320
321objects:	$(COMMON_OBJECTS) $(DEVSYS_OBJECTS)
322
323winecl.tgz:	$(COMMON_OBJECTS) $(DEVSYS_OBJECTS)
324		gtar cvfz eclipse.tgz $(COMMON_OBJECTS) $(DEVSYS_OBJECTS)
325
326libeclipse.a:	$(COMMON_OBJECTS)
327		$(AR) rc ./libeclipse.a $(COMMON_OBJECTS)
328		$(RANLIB) ./libeclipse.a
329
330tkexdr.a: tkexdr.o
331		$(AR) rc ./tkexdr.a tkexdr.o
332		$(RANLIB) ./tkexdr.a
333
334tkexdr.so:	tkexdr.o
335		$(DYLD) $(DYNLDFLAGS) -L$(SYS_LIB) tkexdr.o \
336			$(LIBS) -lc -o $@
337
338tkexdr.dylib:	tkexdr.o
339		$(DYLD) $(DYNLDFLAGS) -L$(SYS_LIB) tkexdr.o \
340			$(LIBS) $(LDTCL) -o ./tkexdr.dylib
341
342tkexdr.dll:	tkexdr.def tkexdr.o
343		$(DYLD) $(DYNLDFLAGS) -o $@ \
344			-Wl,--out-implib,tkexdr.dll.a \
345			$< tkexdr.o \
346			-L$(SYS_LIB) $(GRAPHLIBS) $(LIBS)
347
348
349tkeclipse.a: tkeclipse.o
350		$(AR) rc ./tkeclipse.a tkeclipse.o
351		$(RANLIB) ./tkeclipse.a
352
353# the -lc works around a linker problem on linux
354tkeclipse.so: tkeclipse.o tkexdr.so $(LIB_PREFIX)eclipse.so
355		$(DYLD) $(DYNLDFLAGS) \
356			-L$(RUN_LIB) -L$(SYS_LIB) \
357                        $(RUNPATH_DYLDFLAG)$(RELRUNPATH) \
358			tkeclipse.o tkexdr.so $(LIB_PREFIX)eclipse.so \
359                        $(LIBS) -lc -o $@
360
361# $(GMP_LD)  $(LDTCL) needed for MacOSX
362tkeclipse.dylib: tkeclipse.o tkexdr.dylib $(LIB_PREFIX)eclipse.dylib
363		$(DYLD) $(DYNLDFLAGS) \
364			-L$(RUN_LIB) -L$(SYS_LIB) \
365                        $(RUNPATH_DYLDFLAG)$(RELRUNPATH) \
366			tkeclipse.o tkexdr.dylib $(LIB_PREFIX)eclipse.dylib \
367                        $(LIBS)  $(GMP_LD) $(LDTCL) -o $@
368
369tkeclipse.dll: tkeclipse.def tkeclipse.o tkexdr.dll $(LIB_PREFIX)eclipse.dll
370		$(DYLD) $(DYNLDFLAGS) -o $@ \
371			-L$(RUN_LIB) -L$(SYS_LIB) \
372			$< tkeclipse.o tkexdr.dll $(LIB_PREFIX)eclipse.dll \
373			$(GRAPHLIBS) $(LIBS)
374
375# With Gnu ld we should use
376#	-Wl,--version-script=eclipse.sym
377# to reduce the number of exported symbols, but we don't always
378# use Gnu ld, and it breaks on Solaris even with Gnu ld
379$(LIB_PREFIX)eclipse.so: $(COMMON_OBJECTS) $(DUMMYLIBS)
380		$(DYLD) $(DYNLDFLAGS) -o $@ \
381			$(COMMON_OBJECTS) $(DUMMYLIBS) \
382			-L$(RUN_LIB) -L$(SYS_LIB) \
383			$(RUNPATH_DYLDFLAG)$(RELRUNPATH) \
384			$(BASIC_LIBS) $(LIBS)
385
386$(LIB_PREFIX)eclipse.dylib: $(COMMON_OBJECTS) $(DUMMYLIBS)
387		$(DYLD) $(DYNLDFLAGS) -o $@ \
388			$(COMMON_OBJECTS) $(DUMMYLIBS) \
389			-L$(RUN_LIB) -L$(SYS_LIB) \
390			$(BASIC_LIBS) $(LIBS)
391
392$(LIB_PREFIX)eclipse.dll: $(COMMON_OBJECTS) $(DUMMYLIBS)
393		$(DYLD) $(DYNLDFLAGS) -o $@ \
394			-Wl,--out-implib,$(LIB_PREFIX)eclipse.dll.a \
395			-Wl,--output-def,$(LIB_PREFIX)eclipse.def \
396			$(COMMON_OBJECTS) $(DUMMYLIBS) \
397			-L$(RUN_LIB) -L$(SYS_LIB) \
398			$(BASIC_LIBS) $(LIBS)
399
400$(LIB_PREFIX)eclipse.dll.a: $(LIB_PREFIX)eclipse.dll
401
402
403libdummies.a:	$(ALLDUMMYLIBS) 
404		$(AR) rc ./libdummies.a $(ALLDUMMYLIBS)
405		$(RANLIB) ./libdummies.a
406
407sepia.o:	$(COMMON_OBJECTS)
408		$(LD) -r $(COMMON_OBJECTS) -o $@
409
410
411standalone.o:	$(DEVSYS_OBJECTS)
412		$(LD) -r $(DEVSYS_OBJECTS) -o $@
413
414
415parallel.o:	$(PAR_OBJECTS)
416		$(LD) -r $(PAR_OBJECTS) -o $@
417
418mps.o:		$(MPS_OBJECTS)
419		$(LD) -r $(MPS_OBJECTS) -o $@
420
421
422libeclipsemps.a:	mps.o
423		$(AR) rc ./libeclipsemps.a mps.o
424		$(RANLIB) ./libeclipsemps.a
425
426whereami.c:
427		@echo char \* whereami\(void\) > whereami.c
428		@echo { return\(\"`cd ..;pwd|sed s-auto/--`\"\)\; } >> whereami.c
429
430
431#
432# Include file for C++ embedding
433#
434
435# cc/cxx -> i (uses suffix rule above)
436eclipse_cc.i:	config.h ec_public.h types.h embed.h
437
438# i -> h
439eclipse_cc.h:		eclipse_cc.i
440	/bin/cp eclipse_cc.i eclipse_cc.h
441
442
443#
444# Some files that need special compilation flags etc
445#
446
447bip_arith.o:	bip_arith.c
448		$(CC) $(OPT_FLAGS_ARITH) $(CFLAGS) $(CPPFLAGS) -c $<
449
450emu.o:		emu.c
451		$(CC) $(OPT_FLAGS_EMU) $(CFLAGS) $(CPPFLAGS) -S $<
452		/bin/mv -f emu.s emu.no.s
453		-$(OPTIMIZE) ./emu.no.s ./emu.s
454		@cmp -s ./emu.no.s ./emu.s || echo "Assembly code patched"
455		$(CC) $(CFLAGS) -c emu.s
456
457emu.obj:	emu.o
458		/bin/cp emu.o emu.obj
459
460# On some systems we need to specify extra compiler flags when playing with
461# rounding modes.
462intervals.o:	intervals.c
463		$(CC) $(OPT_FLAGS) $(FLOAT_ROUND_FLAGS) $(CFLAGS) $(CPPFLAGS) \
464		-c $<
465
466wm.o:		wm.c
467		$(CC) $(OPT_FLAGS) $(CFLAGS) $(CPPFLAGS) -c wm.c
468
469wm_interface.o:	wm_interface.c
470		$(CC) $(OPT_FLAGS) $(CFLAGS) $(CPPFLAGS) \
471		-c wm_interface.c
472
473
474#
475# External files
476#
477
478$(EXT_OBJECTS):		$(EXT_INCLUDES)
479
480
481#
482# Rebuild configured files
483#
484
485config.h:	stamp-h
486stamp-h:	config.h.in
487	@( cd $(top_srcdir); \
488	  if grep "hostname = `hostname`" config.log ; then \
489	    ./config.status ; \
490	  else \
491	    echo === Please re-run configure on this host ; \
492	  fi )
493
494Makefile:	Makefile.in
495	@( cd $(top_srcdir); \
496	  if grep "hostname = `hostname`" config.log ; then \
497	    ./config.status ; \
498	  else \
499	    echo === Please re-run configure on this host ; \
500	  fi )
501
502
503# -----------------------------------------------------------------------------
504# ECLiPSe INSTALLATION
505# -----------------------------------------------------------------------------
506
507AUX_SEPIA = ./sepia$(EXE) -D $(SEPIA)
508
509# install is configured as either install_all or install_cross
510install:	@MAKE_TARGET@
511install_all:	sepia$(EXE) install_common install_machine
512install_cross:	install_machine
513
514
515# Some machines don't support chmod -f
516# PERM = -f a+r,u+w,go-w
517PERM = a+r,u+w,go-w
518DIRPERM = 2755
519
520# -----------------------------------------------------------------------------
521# Macros specifying the files to go in the binary release
522#
523# PL_LIBRARIES		they go to $(PREFIX)/lib in source form (.pl)
524# ECL_ECO_LIBRARIES	they go to $(PREFIX)/lib in source & compiled form
525# PL_ECO_LIBRARIES	they go to $(PREFIX)/lib in source & compiled form
526#
527# BOOT_EXEC		they go to $(PREFIX)/lib/$ARCH
528# LIB_OBJECTS		they go to $(PREFIX)/lib/$ARCH
529# SYSLIB_OBJECTS	they go there too
530#
531# EXT_INCLUDES		they go to $(PREFIX)/include/$(ARCH)
532# EG_SOURCES		they go to $(PREFIX)/doc/examples in source form
533# -----------------------------------------------------------------------------
534
535#
536# Files to go to $(PREFIX)/lib in source form only (.pl).
537#
538
539PL_LIBRARIES =	version.pl
540
541#
542# Files to go to $(PREFIX)/lib in both source (.ecl,.pl) and compiled form
543# (.eco).
544#
545
546ECL_ECO_LIBRARIES =	constraint_pools.ecl document.ecl fcompile.ecl \
547		format.ecl lazy_io.ecl csv.ecl \
548		multifile.ecl notify_ports.ecl port_profiler.ecl \
549		swi.ecl time_log.ecl timeout.ecl timeout_simple.ecl var_name.ecl \
550		iso.ecl iso_light.ecl iso_error.ecl iso_strict.ecl iso_aux.ecl \
551		lists_of_structures.ecl
552
553PL_ECO_LIBRARIES =	anti_unify.pl apply.pl \
554		apply_macros.pl atts.pl branch_and_bound.pl \
555		calendar.pl cgi.pl cio.pl cprolog.pl \
556		development_support.pl fd.pl \
557		fd_arith.pl fd_chip.pl fd_domain.pl fd_elipsys.pl \
558		fd_util.pl foreign.pl fromonto.pl heaps.pl \
559		http.pl http_client.pl http_grammar.pl http_method.pl \
560		http_server.pl linearize.pl lips.pl lists.pl \
561		matrix_util.pl \
562		modes.pl notinstance.pl numbervars.pl oldio.pl ordset.pl \
563		paddy.pl par_util.pl pretty_print.pl profile.pl queues.pl \
564		quintus.pl quintus_util.pl rationals.pl remote_tools.pl \
565		sepia.pl sicstus.pl sockets.pl \
566		source_storage.pl spell.pl structures.pl \
567		systools.pl t_all.pl test_util.pl toplevel.pl \
568		tracer_tcl.pl tracer_tty.pl util.pl
569
570BOOT_ECL_ECO_LIBRARIES = \
571		hash.ecl \
572		module_options.ecl \
573		eclipse_language.ecl
574
575BOOT_PL_ECO_LIBRARIES = \
576		asm.pl \
577		suspend.pl
578
579BOOT_ECO_MODULES = \
580		kernel \
581		$(BOOT_PL_ECO_LIBRARIES:%.pl=%) \
582		$(BOOT_ECL_ECO_LIBRARIES:%.ecl=%)
583
584
585# Files from which .eci files will be produced (.ecl,.pl)
586
587ECI_ECL_LIBRARIES =	hash.ecl document.ecl format.ecl lazy_io.ecl csv.ecl \
588		var_name.ecl time_log.ecl module_options.ecl \
589		notify_ports.ecl constraint_pools.ecl port_profiler.ecl \
590		swi.ecl timeout.ecl timeout_simple.ecl fcompile.ecl multifile.ecl \
591		iso.ecl iso_light.ecl iso_strict.ecl lists_of_structures.ecl
592
593
594ECI_PL_LIBRARIES =	anti_unify.pl apply.pl apply_macros.pl \
595		asm.pl atts.pl branch_and_bound.pl cgi.pl \
596		calendar.pl cio.pl cprolog.pl \
597		foreign.pl fromonto.pl heaps.pl \
598		http.pl http_server.pl http_client.pl \
599		linearize.pl lips.pl lists.pl \
600		matrix_util.pl notinstance.pl numbervars.pl \
601		ordset.pl par_util.pl \
602		pretty_print.pl profile.pl queues.pl quintus.pl \
603		quintus_util.pl remote_tools.pl sepia.pl \
604		sicstus.pl sockets.pl spell.pl \
605		suspend.pl util.pl \
606		test_util.pl toplevel.pl \
607		fd.pl
608
609
610TCL_LIBRARIES =	menu.tcl
611
612KERNEL_PARTS =	kernel.pl events.pl meta.pl array.pl pdb.pl debug.pl \
613		dynamic.pl environment.pl io.pl setof.pl tconv.pl \
614		kernel_bips.pl tracer.pl
615
616COMPILER_MODULES = \
617		ecl_compiler \
618		compiler_analysis \
619		compiler_codegen \
620		compiler_common \
621		compiler_indexing \
622		compiler_normalise \
623		compiler_peephole \
624		compiler_regassign \
625		compiler_varclass \
626		compiler_map \
627		source_processor
628
629
630BOOT_EXEC =	INST_PARAMS Makefile.external eclipse.exe
631
632# Library-related files only needed on certain architectures
633ifeq ($(BUILD_WITH_TCL),yes)
634LIB_OBJECTS_TCL_NT = tkexdr.dll.a tkexdr.def
635LIB_OBJECTS_TCL =  tkeclipse.$(OBJECTS_SUFFIX) tkexdr.$(OBJECTS_SUFFIX)
636else
637LIB_OBJECTS_TCL_NT =
638LIB_OBJECTS_TCL = 
639endif
640
641LIB_OBJECTS_i386_nt = $(LIB_PREFIX)eclipse.dll.a $(LIB_PREFIX)eclipse.def \
642		$(LIB_OBJECTS_TCL_NT)
643
644LIB_OBJECTS_x86_64_nt = $(LIB_PREFIX)eclipse.dll.a $(LIB_PREFIX)eclipse.def \
645		$(LIB_OBJECTS_TCL_NT)
646
647LIB_OBJECTS_ARCH = $(LIB_OBJECTS_$(ARCH))
648
649LIB_OBJECTS =	$(LIB_PREFIX)eclipse.$(OBJECTS_SUFFIX) \
650		$(LIB_OBJECTS_TCL) \
651		$(LIB_OBJECTS_ARCH)
652
653# add these to LIB_OBJECTS if you want to have the parallel stuff:
654PARLIB_OBJECTS = parallel.o wm.o wm_interface.o libeclipsemps.a \
655		libpds.a nsrv_ping.o nsrv_server.o
656
657
658EG_SOURCES =	eg_c_main.c eg_cc_main.cc \
659		eg_c_fail_loop.c eg_cc_fail_loop.cc \
660		eg_c_sendmore.c eg_cc_sendmore.cc \
661		eg_c_handle.c eg_cc_handle.cc \
662		eg_c_mip.c eg_cc_mip.cc \
663		eg_c_basic.c eg_cc_basic.cc \
664		eg_c_test.c eg_cc_test.cc \
665		eg_c_external.c eg_cc_external.cc
666
667
668# -----------------------------------------------------------------------------
669# The destination filenames, derived from the above
670# -----------------------------------------------------------------------------
671
672PL_DEST =	$(PL_LIBRARIES:%.pl=$(PREFIX)/lib/%.pl) \
673		$(PL_ECO_LIBRARIES:%.pl=$(PREFIX)/lib/%.pl) \
674		$(BOOT_PL_ECO_LIBRARIES:%.pl=$(PREFIX)/lib/%.pl)
675ECI_DEST =	$(ECI_PL_LIBRARIES:%.pl=$(PREFIX)/lib/%.eci) \
676		$(ECI_ECL_LIBRARIES:%.ecl=$(PREFIX)/lib/%.eci)
677ECL_DEST =	$(ECL_ECO_LIBRARIES:%.ecl=$(PREFIX)/lib/%.ecl) \
678		$(BOOT_ECL_ECO_LIBRARIES:%.ecl=$(PREFIX)/lib/%.ecl)
679TCL_DEST =	$(TCL_LIBRARIES:%.tcl=$(PREFIX)/lib/%.tcl)
680ECO_LIB_DEST =	$(ECL_ECO_LIBRARIES:%.ecl=$(PREFIX)/lib/%.eco) \
681		$(PL_ECO_LIBRARIES:%.pl=$(PREFIX)/lib/%.eco)
682ECO_BOOT_DEST = $(BOOT_ECO_MODULES:%=$(PREFIX)/lib/%.eco) \
683		$(COMPILER_MODULES:%=$(PREFIX)/lib/%.eco)
684SYSLIB_DEST =	$(SYSLIB_OBJECTS:%=$(PREFIX)/lib/$(ARCH)/%)
685BOOT_EXE_DEST =	$(BOOT_EXEC:%=$(PREFIX)/lib/$(ARCH)/%)
686LIB_OBJ_DEST =	$(LIB_OBJECTS:%=$(PREFIX)/lib/$(ARCH)/%)
687EG_SOURCES_DEST = $(EG_SOURCES:%=$(PREFIX)/doc/examples/%)
688EXT_INC_DEST =	$(EXT_INCLUDES:%=$(PREFIX)/include/$(ARCH)/%)
689
690# These files are in the repository, so the system can be bootstrapped:
691BOOT_ECOS =	$(BOOT_ECO_MODULES:%=$(SEPIA)/lib/%.eco)
692COMPILER_ECOS:	$(COMPILER_MODULES:%=$(SEPIA)/lib/%.eco)
693
694
695# -----------------------------------------------------------------------------
696# how to install the machine independent files
697# -----------------------------------------------------------------------------
698
699install_common:	$(C_DEST) $(ECL_DEST) $(ECI_DEST) $(PL_DEST) \
700		$(ECO_LIB_DEST) $(ECO_BOOT_DEST) \
701		$(TCL_DEST) $(EG_SOURCES_DEST)
702
703$(PREFIX)/lib/%.c:	$(SEPIA)/src/%.c $(PREFIX)/lib/.stamp
704	/bin/cp $< $@
705	@/bin/chmod $(PERM) $@
706
707$(PREFIX)/lib/%.pl:	$(SEPIA)/lib/%.pl $(PREFIX)/lib/.stamp
708	/bin/cp $< $@
709	@/bin/chmod $(PERM) $@
710
711$(PREFIX)/lib/%.ecl:	$(SEPIA)/lib/%.ecl $(PREFIX)/lib/.stamp
712	/bin/cp $< $@
713	@/bin/chmod $(PERM) $@
714
715$(PREFIX)/lib/%.tcl:	$(SEPIA)/lib/%.tcl $(PREFIX)/lib/.stamp
716	/bin/cp $< $@
717	@/bin/chmod $(PERM) $@
718
719# copy the version file, replacing the date with the current one
720$(PREFIX)/lib/version.pl:	$(SEPIA)/lib/version.pl $(PREFIX)/lib/.stamp
721	$(AUX_SEPIA) -e "date(D), substring(D, 1, 16, D1),\
722		substring(D, 20, 5, D2), concat_strings(D1, D2, DD),\
723		compile(library(version)),\
724		sepia_stage(Stage), sepia_build(Build),\
725		open(\"$@\", write, V), writeq(V, sepia_date(DD)),\
726		writeln(V, .), writeq(V, sepia_stage(Stage)),\
727		writeln(V, .), writeq(V, sepia_build(Build)),\
728		writeln(V, .), close(V)"
729	@/bin/chmod $(PERM) $@
730
731
732# These boot-files are in the repository in .eco format and are only copied.
733# If you want to re-make them, use make bootfiles
734$(PREFIX)/lib/kernel.eco:		$(SEPIA)/lib/kernel.eco
735$(PREFIX)/lib/suspend.eco:		$(SEPIA)/lib/suspend.eco
736$(PREFIX)/lib/eclipse_language.eco:	$(SEPIA)/lib/eclipse_language.eco
737$(PREFIX)/lib/asm.eco:			$(SEPIA)/lib/asm.eco
738$(PREFIX)/lib/hash.eco:			$(SEPIA)/lib/hash.eco
739$(PREFIX)/lib/module_options.eco:	$(SEPIA)/lib/module_options.eco
740
741$(PREFIX)/lib/%.eco:	$(SEPIA)/lib/%.eco boot_test $(PREFIX)/lib/.stamp
742	/bin/cp $< $@
743	@/bin/chmod $(PERM) $@
744
745
746# This goal tries to make sure that the core system actually boots and that
747# the compiler works (by compiling util.pl).  Could be more thorough!
748boot_test:	sepia$(EXE) $(BOOT_ECOS) $(COMPILER_ECOS)
749	$(AUX_SEPIA) -e 'compile("$(SEPIA)/lib/util"),util:compiled'
750	touch $@
751
752
753$(PREFIX)/lib/%.eco:	$(SEPIA)/lib/%.ecl $(PREFIX)/lib/.stamp
754	$(AUX_SEPIA) -e "compile(\"$<\",\
755		[debug:$(ECO_DBG),srcroot:\"$(top_srcdir)\",outdir:\"$(@D)\",output:eco])"
756	@/bin/chmod $(PERM) $@
757
758$(PREFIX)/lib/%.eco:	$(SEPIA)/lib/%.pl $(PREFIX)/lib/.stamp
759	$(AUX_SEPIA) -e "compile(\"$<\",\
760		[debug:$(ECO_DBG),srcroot:\"$(top_srcdir)\",outdir:\"$(@D)\",output:eco])"
761	@/bin/chmod $(PERM) $@
762
763$(PREFIX)/lib/%.eci:	$(SEPIA)/lib/%.ecl $(PREFIX)/lib/.stamp
764	$(AUX_SEPIA) -e 'lib(document),icompile("$<","$(@D)")'
765	@/bin/chmod $(PERM) $@
766
767$(PREFIX)/lib/%.eci:	$(SEPIA)/lib/%.pl $(PREFIX)/lib/.stamp
768	$(AUX_SEPIA) -e 'lib(document),icompile("$<","$(@D)")'
769	@/bin/chmod $(PERM) $@
770
771$(PREFIX)/doc/examples/%.c: %.c $(PREFIX)/doc/examples/.stamp
772	/bin/cp $< $@
773	@/bin/chmod $(PERM) $@
774
775$(PREFIX)/doc/examples/%.cc: %.cc $(PREFIX)/doc/examples/.stamp
776	/bin/cp $< $@
777	@/bin/chmod $(PERM) $@
778
779$(PREFIX)/include/$(ARCH)/%.h:	%.h $(PREFIX)/include/$(ARCH)/.stamp
780	/bin/cp $< $@
781	@/bin/chmod $(PERM) $@
782
783
784# -----------------------------------------------------------------------------
785# Re-create .eco files that are needed for booting
786# This only needs to be done when the source for these files was changed.
787# The resulting .eco files should must be checked into the repository along
788# with the modified sources. The compiler files also belong into this group,
789# but are created via the Compiler/Makefile
790# -----------------------------------------------------------------------------
791
792STABLE_ECLIPSE = $(PREFIX)/bin/$(ARCH)/eclipse
793
794# force re-making all the bootfiles
795new_bootfiles:
796	rm -f $(BOOT_ECOS)
797	$(MAKE) $(BOOT_ECOS)
798
799bootfiles:	$(BOOT_ECOS)
800
801$(SEPIA)/lib/kernel.eco:	$(KERNEL_PARTS:%=$(SEPIA)/lib/%)
802	@if test -x $(STABLE_ECLIPSE) ; then \
803	    echo "Rebuilding bootfile $@ [debug:$(ECO_DBG)]"; \
804	    $(STABLE_ECLIPSE) -D $(PREFIX) -e 'unlock(sepia_kernel,"Sepia"),compile("$(SEPIA)/lib/kernel.pl",[debug:$(ECO_DBG),srcroot:"$(top_srcdir)",outdir:"$(@D)",load:none,output:eco])'; \
805	else \
806	    touch $@; echo "WARNING: $@ out-of-date, but cannot rebuild without stable eclipse"; \
807	fi 
808	@/bin/chmod $(PERM) $@
809
810$(SEPIA)/lib/%.eco:	$(SEPIA)/lib/%.ecl
811	@if test -x $(STABLE_ECLIPSE) ; then \
812	    echo "Rebuilding bootfile $@ [debug:$(ECO_DBG)]"; \
813	    $(STABLE_ECLIPSE) -D $(PREFIX) -e 'compile("$<", [debug:$(ECO_DBG),srcroot:"$(top_srcdir)",outdir:"$(@D)",output:eco,load:none])'; \
814	else \
815	    touch $@; echo "WARNING: $@ out-of-date, but cannot rebuild without stable eclipse"; \
816	fi 
817	@/bin/chmod $(PERM) $@
818
819$(SEPIA)/lib/%.eco:	$(SEPIA)/lib/%.pl
820	@if test -x $(STABLE_ECLIPSE) ; then \
821	    echo "Rebuilding bootfile $@ [debug:$(ECO_DBG)]"; \
822	    $(STABLE_ECLIPSE) -D $(PREFIX) -e 'compile("$<", [debug:$(ECO_DBG),srcroot:"$(top_srcdir)",outdir:"$(@D)",output:eco,load:none])'; \
823	else \
824	    touch $@; echo "WARNING: $@ out-of-date, but cannot rebuild without stable eclipse"; \
825	fi 
826	@/bin/chmod $(PERM) $@
827
828
829# -----------------------------------------------------------------------------
830# how to install the machine dependent stuff
831# -----------------------------------------------------------------------------
832
833install_machine: @INSTALL_GMP@ $(BOOT_EXE_DEST) $(LIB_OBJ_DEST) $(EXT_INC_DEST)
834
835
836# the .dll.a file is created as a side effect of making the .dll
837$(PREFIX)/lib/i386_nt/%.dll.a:	%.dll $(PREFIX)/lib/i386_nt/.stamp
838	/bin/cp $(@F) $@
839	@/bin/chmod $(PERM) $@
840
841# the .def file is created as a side effect of making the .dll
842$(PREFIX)/lib/i386_nt/eclipse.def:	eclipse.dll $(PREFIX)/lib/i386_nt/.stamp
843	/bin/cp $(@F) $@
844	@/bin/chmod $(PERM) $@
845
846# this also copies from ../src/%.def because of VPATH
847$(PREFIX)/lib/i386_nt/%.def:	%.def $(PREFIX)/lib/i386_nt/.stamp
848	/bin/cp $< $@
849	@/bin/chmod $(PERM) $@
850
851# this also copies from ../src/%.reg because of VPATH
852$(PREFIX)/lib/i386_nt/%.reg:	%.reg $(PREFIX)/lib/i386_nt/.stamp
853	/bin/cp $(@F) $@
854	@/bin/chmod $(PERM) $@
855
856# the .dll.a file is created as a side effect of making the .dll
857$(PREFIX)/lib/x86_64_nt/%.dll.a:	%.dll $(PREFIX)/lib/x86_64_nt/.stamp
858	/bin/cp $(@F) $@
859	@/bin/chmod $(PERM) $@
860
861# the .def file is created as a side effect of making the .dll
862$(PREFIX)/lib/x86_64_nt/eclipse.def:	eclipse.dll $(PREFIX)/lib/x86_64_nt/.stamp
863	/bin/cp $(@F) $@
864	@/bin/chmod $(PERM) $@
865
866# this also copies from ../src/%.def because of VPATH
867$(PREFIX)/lib/x86_64_nt/%.def:	%.def $(PREFIX)/lib/x86_64_nt/.stamp
868	/bin/cp $< $@
869	@/bin/chmod $(PERM) $@
870
871# this also copies from ../src/%.reg because of VPATH
872$(PREFIX)/lib/x86_64_nt/%.reg:	%.reg $(PREFIX)/lib/x86_64_nt/.stamp
873	/bin/cp $(@F) $@
874	@/bin/chmod $(PERM) $@
875
876$(PREFIX)/lib/$(ARCH)/INST_PARAMS:	INST_PARAMS $(PREFIX)/lib/$(ARCH)/.stamp
877	-/bin/cp $< $@
878	-@/bin/chmod $(PERM) $@
879
880$(PREFIX)/lib/$(ARCH)/Makefile.external:	Makefile.external $(PREFIX)/lib/$(ARCH)/.stamp
881	-/bin/cp $< $@
882	-@/bin/chmod $(PERM) $@
883
884$(PREFIX)/lib/$(ARCH)/%.o:	%.o $(PREFIX)/lib/$(ARCH)/.stamp
885	/bin/cp $< $@
886	@/bin/chmod $(PERM) $@
887
888$(PREFIX)/lib/$(ARCH)/%.$(OBJECTS_SUFFIX): %.$(OBJECTS_SUFFIX) $(PREFIX)/lib/$(ARCH)/.stamp
889	/bin/cp $< $@
890	@/bin/chmod $(PERM) $@
891
892$(PREFIX)/lib/$(ARCH)/%.exe:	%.exe $(PREFIX)/lib/$(ARCH)/.stamp
893	/bin/cp $< $@
894	@/bin/chmod $(PERM) $@
895
896$(PREFIX)/lib/$(ARCH)/%.$(OBJECTS_SUFFIX):	$(SYS_LIB)/%.$(OBJECTS_SUFFIX) $(PREFIX)/lib/$(ARCH)/.stamp
897	/bin/cp $< $@
898	@/bin/chmod $(PERM) $@
899
900$(PREFIX)/lib/$(ARCH)/%.a:	%.a $(PREFIX)/lib/$(ARCH)/.stamp
901	/bin/cp $< $@
902	@$(RANLIB) $@
903	@/bin/chmod $(PERM) $@
904
905$(PREFIX)/lib/$(ARCH)/%.a:	$(SYS_LIB)/%.a $(PREFIX)/lib/$(ARCH)/.stamp
906	/bin/cp $< $@
907	@$(RANLIB) $@
908	@/bin/chmod $(PERM) $@
909
910$(PREFIX)/lib/$(ARCH)/%.o:	$(SYS_LIB)/%.o $(PREFIX)/lib/$(ARCH)/.stamp
911	/bin/cp $< $@
912	@/bin/chmod $(PERM) $@
913
914
915install_gmp:	$(PREFIX)/lib/$(ARCH)/$(LIB_PREFIX)$(GMP_LIB).$(OBJECTS_SUFFIX)
916
917$(PREFIX)/lib/$(ARCH)/$(LIB_PREFIX)$(GMP_LIB).$(OBJECTS_SUFFIX):	$(GMP_LIBDIR)/$(LIB_PREFIX)$(GMP_LIB).$(OBJECTS_SUFFIX) $(PREFIX)/lib/$(ARCH)/.stamp
918	# copy using tar to keep symbolic link structure
919	(cd $(GMP_LIBDIR); tar cf - $(LIB_PREFIX)$(GMP_LIB)*) | (cd $(PREFIX)/lib/$(ARCH); tar xfBp -)
920	@/bin/chmod $(PERM) $@
921	touch $@
922
923
924# -----------------------------------------------------------------------------
925# make the installation directories
926# (we use timestamp files to remember when the directory was created)
927# -----------------------------------------------------------------------------
928
929%/.stamp:
930	mkdir -p $(@D)
931	@/bin/chmod $(DIRPERM) $(@D)
932	@touch $@; /bin/chmod $(PERM) $@
933
934
935# -----------------------------------------------------------------------------
936# Pretty-print the sources
937# This only works after make install and RUNME
938# -----------------------------------------------------------------------------
939
940PRETTY_DIR =	$(PREFIX)/doc_internal/lib
941
942HTML_DEST =	$(PL_LIBRARIES:%.pl=$(PRETTY_DIR)/%.html) \
943		$(PL_ECO_LIBRARIES:%.pl=$(PRETTY_DIR)/%.html) \
944		$(ECL_ECO_LIBRARIES:%.ecl=$(PRETTY_DIR)/%.html)
945
946pretty:		$(PRETTY_DIR)/.stamp $(HTML_DEST)
947
948
949$(PRETTY_DIR)/%.html:	$(SEPIA)/lib/%.pl $(PRETTY_DIR)/.stamp
950	-@$(PREFIX)/bin/$(ARCH)/eclipse -e \
951	    "lib(pretty_printer),argv(all,[_,O|F]),pretty_print(F,[outdir:O])" \
952	    -- "$(PRETTY_DIR)" $<
953
954$(PRETTY_DIR)/%.html:	$(SEPIA)/lib/%.ecl $(PRETTY_DIR)/.stamp
955	-@$(PREFIX)/bin/$(ARCH)/eclipse -e \
956	    "lib(pretty_printer),argv(all,[_,O|F]),pretty_print(F,[outdir:O])" \
957	    -- "$(PRETTY_DIR)" $<
958
959
960# -----------------------------------------------------------------------------
961# Automatically generated dependencies
962# makedepend -Y -fMakefile.in *.c
963# -----------------------------------------------------------------------------
964
965# DO NOT DELETE
966
967Test_script.o: config.h
968addrmap.o: config.h
969bigrat.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
970bigrat.o: emu_export.h
971bip_arith.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h
972bip_arith.o: dict.h emu_export.h rounding_control.h
973bip_array.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h
974bip_array.o: dict.h emu_export.h property.h module.h
975bip_bag.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
976bip_comp.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
977bip_comp.o: opcode.h emu_export.h
978bip_control.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
979bip_control.o: ec_io.h dict.h emu_export.h debug.h module.h property.h
980bip_control.o: os_support.h
981bip_db.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h ec_io.h
982bip_db.o: opcode.h gencode.h dict.h database.h emu_export.h
983bip_db.o: module.h debug.h property.h
984bip_delay.o: config.h sepia.h ec_public.h types.h embed.h mem.h debug.h
985bip_delay.o: error.h dict.h emu_export.h property.h
986bip_domain.o: config.h sepia.h ec_public.h types.h embed.h mem.h dict.h
987bip_domain.o: error.h emu_export.h fd.h
988bip_heapevents.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
989bip_io.o: config.h os_support.h sepia.h ec_public.h types.h embed.h mem.h
990bip_io.o: error.h ec_io.h dict.h lex.h emu_export.h property.h
991bip_load.o: config.h sepia.h ec_public.h types.h embed.h mem.h dict.h
992bip_load.o: emu_export.h error.h opcode.h ec_io.h property.h module.h
993bip_load.o: os_support.h
994bip_misc.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
995bip_misc.o: emu_export.h os_support.h
996bip_module.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h ec_io.h
997bip_module.o: dict.h database.h emu_export.h debug.h gencode.h module.h
998bip_module.o: opcode.h property.h
999bip_mps.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
1000bip_parallel.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
1001bip_parallel.o: ec_io.h dict.h emu_export.h property.h module.h opcode.h
1002bip_record.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
1003bip_record.o: dict.h property.h module.h
1004bip_serialize.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1005bip_serialize.o: ec_io.h emu_export.h module.h
1006bip_shelf.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
1007bip_shelf.o: dict.h property.h
1008bip_store.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
1009bip_store.o: dict.h property.h
1010bip_strings.o: config.h sepia.h ec_public.h types.h embed.h mem.h dict.h
1011bip_strings.o: emu_export.h error.h sha.c
1012bip_tconv.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
1013bip_tconv.o: dict.h emu_export.h ec_io.h lex.h property.h module.h
1014code.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
1015code.o: emu_export.h opcode.h gencode.h debug.h module.h database.h
1016dict.o: config.h os_support.h sepia.h ec_public.h types.h embed.h error.h
1017dict.o: mem.h ec_io.h dict.h emu_export.h
1018dummy_bigrat.o: config.h sepia.h ec_public.h types.h error.h
1019dummy_par.o: config.h ec_public.h error.h
1020eclipsedir.o: config.h os_support.h
1021eg_c_basic.o: eclipse.h config.h ec_public.h types.h embed.h
1022eg_c_external.o: eclipse.h config.h ec_public.h types.h embed.h
1023eg_c_fail_loop.o: eclipse.h config.h ec_public.h types.h embed.h
1024eg_c_handle.o: eclipse.h config.h ec_public.h types.h embed.h
1025eg_c_main.o: eclipse.h config.h ec_public.h types.h embed.h
1026eg_c_mip.o: eclipse.h config.h ec_public.h types.h embed.h
1027eg_c_sendmore.o: eclipse.h config.h ec_public.h types.h embed.h
1028eg_c_test.o: eclipse.h config.h ec_public.h types.h embed.h
1029elipsys_fd.o: config.h sepia.h ec_public.h types.h embed.h mem.h dict.h fd.h
1030elipsys_fd.o: error.h
1031embed.o: config.h sepia.h ec_public.h types.h error.h mem.h dict.h module.h
1032embed.o: emu_export.h embed.h os_support.h
1033emu.o: config.h sepia.h ec_public.h types.h error.h mem.h dict.h emu_export.h
1034emu.o: embed.h opcode.h database.h module.h debug.h property.h ec_io.h
1035emu_c_env.o: config.h sepia.h ec_public.h types.h error.h embed.h mem.h ec_io.h
1036emu_c_env.o: dict.h emu_export.h module.h debug.h opcode.h
1037emu_par.o: config.h sepia.h ec_public.h types.h embed.h error.h ec_io.h mem.h
1038emu_par.o: dict.h emu_export.h opcode.h wm.h sch_eng_interface.h trace.h
1039emu_util.o: config.h sepia.h ec_public.h types.h debug.h embed.h error.h
1040emu_util.o: mem.h opcode.h dict.h module.h emu_export.h ec_io.h
1041error.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1042error.o: emu_export.h ec_io.h os_support.h
1043example.o: external.h config.h sepia.h ec_public.h types.h error.h embed.h
1044external.o: config.h sepia.h ec_public.h types.h embed.h mem.h dict.h error.h
1045external.o: emu_export.h
1046gc_stacks.o: config.h os_support.h sepia.h ec_public.h types.h embed.h
1047gc_stacks.o: error.h mem.h dict.h ec_io.h opcode.h emu_export.h
1048handle.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h ec_io.h
1049handle.o: dict.h database.h emu_export.h
1050handlers.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
1051handlers.o: emu_export.h ec_io.h module.h property.h os_support.h
1052init.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1053init.o: module.h os_support.h ec_io.h
1054intervals.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h
1055intervals.o: dict.h emu_export.h opcode.h intervals.h rounding_control.h
1056io.o: config.h os_support.h sepia.h ec_public.h types.h embed.h mem.h error.h
1057io.o: dict.h lex.h ec_io.h emu_export.h property.h module.h
1058lex.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
1059lex.o: lex.h ec_io.h emu_export.h module.h property.h os_support.h
1060lex.o: rounding_control.h
1061main.o: config.h os_support.h sepia.h ec_public.h types.h embed.h error.h
1062main.o: mem.h dict.h emu_export.h module.h property.h
1063manual_examples.o: external.h config.h sepia.h ec_public.h types.h error.h
1064manual_examples.o: embed.h
1065mem.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h ec_io.h
1066mem.o: emu_export.h os_support.h
1067operator.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1068operator.o: emu_export.h property.h module.h lex.h
1069os_support.o: config.h os_support.h
1070printam.o: config.h names.h sepia.h ec_public.h types.h embed.h error.h mem.h
1071printam.o: opcode.h ec_io.h dict.h emu_export.h database.h gencode.h
1072printam.o: module.h debug.h
1073proc_desc.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h
1074proc_desc.o: opcode.h dict.h emu_export.h database.h module.h
1075proc_desc.o: property.h gencode.h
1076procedure.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h
1077procedure.o: dict.h emu_export.h property.h opcode.h gencode.h
1078procedure.o: ec_io.h database.h module.h read.h os_support.h
1079property.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1080property.o: module.h property.h
1081read.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1082read.o: lex.h emu_export.h ec_io.h read.h module.h property.h
1083sch_util.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1084sch_util.o: sch_types.h sch_macros.h
1085scheduler.o: config.h trace.h error.h sch_types.h sch_eng_interface.h
1086scheduler.o: sch_macros.h
1087st2.o: config.h
1088term_copy.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1089term_copy.o: emu_export.h
1090test.o: sepia.h ec_public.h types.h
1091tkeclipse.o: eclipse.h config.h ec_public.h types.h embed.h tkcommon.h
1092tkexdr.o: config.h tkcommon.h
1093trace.o: config.h os_support.h sepia.h ec_public.h types.h embed.h error.h
1094trace.o: mem.h dict.h trace.h wm_msgs.h wm.h
1095types_external.o: config.h sepia.h ec_public.h types.h
1096upcalls.o: config.h
1097wm.o: config.h sch_types.h trace.h wm_msgs.h wm_types.h
1098wm_interface.o: config.h sch_types.h trace.h wm_msgs.h wm_types.h
1099worker.o: config.h sepia.h ec_public.h types.h embed.h error.h mem.h dict.h
1100worker.o: trace.h wm_msgs.h wm.h sch_types.h sch_eng_interface.h
1101write.o: config.h sepia.h ec_public.h types.h embed.h mem.h error.h dict.h
1102write.o: lex.h ec_io.h emu_export.h module.h property.h
1103