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) 2006 Cisco Systems, Inc.  All Rights Reserved.
18% 
19% Contributor(s): 
20% 
21% END LICENSE BLOCK
22# $Id: Makefile,v 1.1 2006/09/23 01:54:04 snovello Exp $
23
24.SUFFIXES : .so
25
26
27SYSTEM=sparc_5_4.2
28CCC=/opt/SUNWspro/bin/CC4.1
29CCLIBDIR=/opt/SUNWspro/SC4.0/lib
30# g++ -fhandle-exceptions: internal error on intexp.h !
31CC=/opt/SUNWspro/bin/cc
32LD=/usr/ccs/bin/ld
33
34LIBFORMAT=static
35
36#------------------------------------------------------------
37# File extension
38#------------------------------------------------------------
39EXT=cc
40
41#------------------------------------------------------------
42# Librairies used with examples
43#------------------------------------------------------------
44LIBS= -lsocket -lnsl -lm -lsunmath
45
46
47#------------------------------------------------------------
48# Debug flag
49#------------------------------------------------------------
50
51DEBUG=-O -DNDEBUG
52#DEBUG=-g -DDEBUG
53# -O -DNDEBUG
54# -g -DDEBUG
55
56#------------------------------------------------------------
57#
58# When you adapt this makefile to compile your SOLVER programs
59# please copy this makefile and set SOLVERDIR to the directory
60# where SOLVER was installed. 
61#
62#------------------------------------------------------------
63
64#SOLVERDIR=/opt/ilog/solver421
65#SCHEDULERDIR=/opt/ilog/sched41
66SOLVERDIR=/opt/ilog/solver43
67SCHEDULERDIR=/opt/ilog/sched43
68ECLIPSEDIR=../..
69
70
71#------------------------------------------------------------
72# Compilation flags
73# LDFLTFLAGS is needed to link with the Solver Floating Point
74# library
75#------------------------------------------------------------
76
77SOLVERIncDir=$(SOLVERDIR)/include
78SCHEDULERIncDir=$(SCHEDULERDIR)/include
79ECLIPSEIncDir=$(ECLIPSEDIR)/include/sparc_sunos5
80
81CFLAGS=$(DEBUG) $(NEWOPT) -I$(SOLVERIncDir) -I$(SCHEDULERIncDir) -I$(ECLIPSEIncDir)
82LDFLAGS=-L$(SOLVERDIR)/lib/$(SYSTEM)/$(LIBFORMAT) -L$(SCHEDULERDIR)/lib/$(SYSTEM)/$(LIBFORMAT) -L$(ECLIPSEDIRLIB)
83LDFLTFLAGS=-L$(SOLVERDIR)/lib/$(SYSTEM)/$(LIBFORMAT) -lilcfloat -lsolver $(LIBS) 
84
85# ------------------------------------------------------------
86
87
88# ------------------------------------------------------------
89
90all:	$(ARCH)/ilog.so
91
92# The examples
93
94
95.cc.o :
96	$(CCC) -c $(CFLAGS) $< -o $@
97.c.o :
98	$(CC) -c $(CFLAGS) $< -o $@
99.o.so :
100	$(CC) -G -o $@ $<
101
102
103OFILES = stdecil.o classes.o outof.o ec2il.o ilog.o stdsched.o \
104	sched_cstrs.o scheduler.o
105
106
107stdecil.o : stdecil.h
108classes.o : stdecil.h classes.h
109ec2il.o : stdecil.h ec2il.h stdecil.h
110ilog.o : stdecil.h classes.h ec2il.h
111
112
113# As a result of endless tries, we use LD here instead of CCC.
114# 1.	With CCC, -z text is automatically passed to the linker and
115#	makes it impossible to create the .so
116# 2.	To get exception handling working, we additionally link with
117#	crti.o (first) and crtn.o (last)
118
119sparc_sunos5/ilog.so : $(OFILES)
120	$(LD) -dy -G -z textoff \
121	    /opt/SUNWspro/SC4.0/lib/crti.o \
122	    $(OFILES) \
123	    -L$(SCHEDULERDIR)/lib/$(SYSTEM)/$(LIBFORMAT) -lschedule \
124	    -L$(SOLVERDIR)/lib/$(SYSTEM)/$(LIBFORMAT) -lsolver \
125	    -L$(CCLIBDIR) -lC /opt/SUNWspro/SC4.0/lib/crtn.o \
126	    -lsunmath -o $@
127
128
129clean :
130	/bin/rm -rf *.o *~ 
131
132
133#----------------------------------------------------------------------
134# Install
135#----------------------------------------------------------------------
136
137PERM = a+r,u+w,go-w
138DIRPERM = 2755
139PREFIX = $(ECLIPSEDIR)
140ECLIPSE = $(ECLIPSEDIR)/bin/$(ARCH)/eclipse
141
142PUBLIC_FILES =	ilog.pl alldiff_strong.pl fd_ilog.pl scheduler.pl \
143	fd_min_max.pl fd.pl fd_fd.pl
144
145OBJ_SUFFIX =	$(OBJ_SUFFIX_$(ARCH))
146
147OBJ_SUFFIX_sparc_sunos5 = so
148OBJ_SUFFIX_sun4 = o
149OBJ_SUFFIX_i386_linux = so
150OBJ_SUFFIX_alpha_linux = so
151OBJ_SUFFIX_i386_nt = dll
152
153
154OBJ_FILES =  $(ARCH)/ilog.$(OBJ_SUFFIX)
155
156
157PRIVATE_DEST =	$(PRIVATE_FILES:%=$(PREFIX)/lib_private/ilog/%) \
158		$(PUBLIC_FILES:%=$(PREFIX)/lib_private/ilog/%)
159PUBLIC_DEST =	$(PRIVATE_FILES:%.pl=$(PREFIX)/lib/ilog/%.sd) \
160		$(PUBLIC_FILES:%=$(PREFIX)/lib/ilog/%)
161OBJ_DEST =	$(OBJ_FILES:%=$(PREFIX)/lib/ilog/%) \
162		$(OBJ_FILES:%=$(PREFIX)/lib_private/ilog/%) 
163
164
165install:	$(PRIVATE_DEST) $(PUBLIC_DEST) $(OBJ_DEST) $(ECH_DEST)
166
167install_obj:	$(OBJ_DEST)
168
169%/.stamp:
170	mkdir -p $(@D)
171	@/bin/chmod $(DIRPERM) $(@D)
172	@touch $@; /bin/chmod $(PERM) $@
173
174
175$(PREFIX)/lib/ilog/%.sd:	%.pl $(PREFIX)/lib/ilog/.stamp
176	-$(ECLIPSE) -e 'dump("$(*F).pl")'
177	-mv $(*F).sd $@
178	@/bin/chmod $(PERM) $@
179
180$(PREFIX)/lib/ilog/%.pl:	%.pl $(PREFIX)/lib/ilog/.stamp
181	/bin/cp $< $@
182	@/bin/chmod $(PERM) $@
183
184$(PREFIX)/lib_private/ilog/%.pl:	%.pl $(PREFIX)/lib_private/ilog/.stamp
185	/bin/cp $< $@
186	@/bin/chmod $(PERM) $@
187
188
189$(PREFIX)/lib/ilog/$(ARCH)/%.$(OBJ_SUFFIX):	$(ARCH)/%.$(OBJ_SUFFIX) $(PREFIX)/lib/ilog/$(ARCH)/.stamp
190	/bin/cp $< $@
191	@/bin/chmod $(PERM) $@
192
193$(PREFIX)/lib_private/ilog/$(ARCH)/%.$(OBJ_SUFFIX):	$(ARCH)/%.$(OBJ_SUFFIX) $(PREFIX)/lib_private/ilog/$(ARCH)/.stamp
194	/bin/cp $< $@
195	@/bin/chmod $(PERM) $@
196
197
198
199#----------------------------------------------------------------------
200# Experimental
201#----------------------------------------------------------------------
202
203donald: donald.o
204	$(CCC)    $(CFLAGS) donald.o -o donald $(LDFLAGS) -lsolver -lsocket -ldl -lnsl
205donald.o: donald.cc
206	$(CCC) -c $(CFLAGS) donald.cc
207
208
209
210ECLIPSEDIRLIB = $(ECLIPSEDIR)/lib/sparc_sunos5
211eclipse : $(OFILES) $(ECLIPSEDIRLIB)/standalone.o
212	$(CCC) -v $(DEBUG) $(ECLIPSEDIRLIB)/standalone.o $(LDFLAGS) $(OFILES) \
213		-lschedule -lsolver $(ECLIPSEDIRLIB)/libeclipse.a -lgmp -lshm -ldummies \
214		-lsocket -ldl -lnsl -lsunmath -o $@
215
216
217
218
219cmainstat:	cmainstat.o mylib.o
220	$(CCC) cmainstat.o mylib.o -ldl -o $@
221
222cmainstat.o:	cmainstat.c
223	$(CC) -c cmainstat.c -o $@
224
225
226cmain.o:	cmain.c
227	$(CC) -c cmain.c -o $@
228
229
230# works
231#cmain:	cmain.o
232#	$(CCC) -v cmain.o -ldl -o $@
233#
234#mylib.so:	mylib.cc
235#	$(CCC) -G mylib.cc -o $@
236
237
238cmain:	cmain.o
239	$(CC) cmain.o -ldl -o $@
240
241mylib.so:	mylib.o
242	$(LD) -dy -G /opt/SUNWspro/SC4.0/lib/crti.o mylib.o -L$(CCLIBDIR) -lC /opt/SUNWspro/SC4.0/lib/crtn.o -o $@
243#	$(LD) -dy -G /opt/SUNWspro/SC4.0/lib/crti.o mylib.o -L$(CCLIBDIR) -lC -lw -lcx -lc /opt/SUNWspro/SC4.0/lib/crtn.o -o $@
244#	$(LD) -dy -G /opt/SUNWspro/SC4.0/lib/crti.o /opt/SUNWspro/SC4.0/lib/values-xa.o -Y P,/opt/SUNWspro/lib:/opt/SUNWspro/SC4.0/lib:/usr/ccs/lib:/usr/lib mylib.o -lC -lC_mtstubs -lw -lcx -lc /opt/SUNWspro/SC4.0/lib/crtn.o -o $@
245#	$(LD) -dy -G /opt/SUNWspro/SC4.0/lib/crti.o /opt/SUNWspro/SC4.0/lib/crt1.o /opt/SUNWspro/SC4.0/lib/values-xa.o -Y P,/opt/SUNWspro/lib:/opt/SUNWspro/SC4.0/lib:/usr/ccs/lib:/usr/lib mylib.o -lC -lC_mtstubs -lw -lcx -lc /opt/SUNWspro/SC4.0/lib/crtn.o -o $@
246
247
248#mylib.so:	mylib.o
249#	$(CCC) -G mylib.o -o $@
250##	$(LD) -dy -G mylib.o -L$(CCLIBDIR) -lC -o $@
251#
252#
253#mylib.o:	mylib.cc
254#	$(CCC) mylib.cc -o $@
255