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