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 ECLiPSe link to CPViz Constraint Visualization System 15# The Initial Developer of the Original Code is Joachim Schimpf 16# Portions created by the Initial Developer are 17# Copyright (C) 2013 Joachim Schimpf 18# 19# END LICENSE BLOCK 20 21# Makefile for CP-Viz Interface 22 23 24ARCH = @ARCH@ 25top_srcdir = @top_srcdir@ 26PREFIX = @prefix@ 27ECLIPSEDIR = $(PREFIX) 28THIRDPARTY=@ECLIPSETHIRDPARTY@ 29 30MAKEFILE = Makefile.$(ARCH) 31ECLIPSE = $(ECLIPSEDIR)/bin/$(ARCH)/eclipse 32 33 34JAVA_HOME = @JAVA_HOME@ 35JRE_HOME = @JRE_HOME@ 36PATHSEP = @JAVA_PATH_SEP@ 37 38JAVAC = $(JAVA_HOME)/bin/javac 39JAR = $(JAVA_HOME)/bin/jar 40JAVADOC = $(JAVA_HOME)/bin/javadoc 41JAVAFLAGS = -J-mx256m 42CLASSPATH = $(JRE_HOME)/lib/rt.jar 43 44 45ECL_ECO_FILES = 46ECL_ECL_FILES = cpviz.ecl vis_options.ecl vis_structures.ecl \ 47 visualization.ecl visualize_tree.ecl node_cnt.ecl 48ECL_ECI_FILES = cpviz.ecl vis_structures.ecl \ 49 visualization.ecl visualize_tree.ecl 50 51ECI_FILES = $(ECL_ECI_FILES:%.ecl=%.eci) 52 53ECO_FILES = $(ECL_ECO_FILES:%.ecl=%.eco) 54 55JAR_FILES = viz viztool \ 56 batik-anim batik-awt-util batik-bridge batik-css batik-dom \ 57 batik-ext batik-gvt batik-gui-util batik-parser batik-script \ 58 batik-svg-dom batik-swing batik-util batik-xml xml-apis-ext jhall 59 60DOC_FILE = CP\ Visualizer\ Format.pdf 61 62EXAMPLES = bibd bin bridge car costas mix nqueen party \ 63 rooms sbno sendmore sonet sudoku wave 64 65 66DESTDIR = $(ECLIPSEDIR)/lib_public 67DOCDIR = $(ECLIPSEDIR)/doc 68EXAMPLEDIR = $(ECLIPSEDIR)/doc/examples 69 70ECO_DEST = $(ECO_FILES:%.eco=$(DESTDIR)/%.eco) 71 72ECI_DEST = $(ECI_FILES:%.eci=$(DESTDIR)/%.eci) 73 74ECL_DEST = $(ECL_ECL_FILES:%.ecl=$(DESTDIR)/%.ecl) \ 75 $(ECL_ECO_FILES:%.ecl=$(DESTDIR)/%.ecl) 76 77JAR_DEST = $(JAR_FILES:%=$(DESTDIR)/%.jar) 78 79DOC_DEST = $(DOCDIR)/$(DOC_FILE) 80 81EXAMPLE_DEST = $(EXAMPLEDIR)/cpviz 82 83PERM = a+r,u+w,go-w 84 85 86# --------------- 87# Targets 88# --------------- 89 90# ALL_CPVIZ is configured as all_cpviz or empty 91install: @ALL_CPVIZ@ 92# MAKE_TARGET is configured as install_all or install_cross 93all_cpviz: @MAKE_TARGET@ 94 95install_cross: $(ECL_DEST) $(JAR_DEST) $(DOC_DEST) $(EXAMPLE_DEST) 96install_all: install_cross $(ECO_DEST) $(ECI_DEST) 97 98 99ecoclean: 100 rm -f $(ECO_FILES) $(ECO_DEST) 101 102archclean: 103 104clean: ecoclean archclean 105 rm -rf $(ECL_DEST) $(ECI_DEST) $(JAR_DEST) 106 rm -rf $(DOC_DEST) $(EXAMPLE_DEST) 107 rm -rf $(VIZ_CLASSES) $(VIZTOOL_CLASSES) $(VIZ_JDOC) jars 108 109 110# --------------- 111# Eclipse files 112# --------------- 113 114$(DESTDIR)/%.eci: %.ecl 115 @mkdir -p $(@D) 116 $(ECLIPSE) -e 'lib(document),icompile("$(*F)","$(@D)")' 117 -@/bin/chmod $(PERM) $@ 118 119$(DESTDIR)/%.eco: %.ecl 120 @mkdir -p $(@D) 121 $(ECLIPSE) -e 'lib(fcompile),fcompile("$(*F)", [outdir:"$(@D)"])' 122 -@/bin/chmod $(PERM) $@ 123 124$(DESTDIR)/%.ecl: %.ecl 125 @mkdir -p $(@D) 126 /bin/cp $< $@ 127 -@/bin/chmod $(PERM) $@ 128 129$(DESTDIR)/%.ecl: viz/examples/%.ecl 130 @mkdir -p $(@D) 131 /bin/cp $< $@ 132 -@/bin/chmod $(PERM) $@ 133 134$(DESTDIR)/%.eci: viz/examples/%.ecl 135 @mkdir -p $(@D) 136 $(ECLIPSE) -e 'lib(document),icompile("$<","$(@D)")' 137 -@/bin/chmod $(PERM) $@ 138 139 140# --------------- 141# docs and examples 142# --------------- 143 144$(DOC_DEST): viz/documentation/$(DOC_FILE) 145 @mkdir -p $(@D) 146 /bin/cp "$<" $(DOC_DEST) 147 -@/bin/chmod $(PERM) "$@" 148 149 150$(EXAMPLE_DEST): 151 @mkdir -p $@ 152 ( cd viz/examples; tar cf - --exclude=CVS $(EXAMPLES)) \ 153 | (cd $@ ; tar xf - ) 154 -@/bin/chmod -R $(PERM) $@ 155 156 157# --------------- 158# viz 159# --------------- 160 161VIZ_SRC = viz/src 162VIZ_PKG = ie/ucc/cccc/viz 163VIZ_JAVAS = $(VIZ_SRC)/$(VIZ_PKG)/*.java 164VIZ_RESS = $(VIZ_SRC)/$(VIZ_PKG)/resources 165VIZ_HELP = $(VIZ_SRC)/javahelp 166VIZ_CLASSES = viz/classes 167VIZ_JDOC = viz/doc 168VIZ_JAR = viz.jar 169 170$(VIZ_CLASSES)/stamp: 171 mkdir -p $(VIZ_CLASSES) 172 "$(JAVAC)" $(JAVAFLAGS) -classpath "$(CLASSPATH)" \ 173 -d $(VIZ_CLASSES) \ 174 -sourcepath $(VIZ_SRC) \ 175 $(VIZ_JAVAS) && touch $@ 176 177 178$(DESTDIR)/$(VIZ_JAR): $(VIZ_CLASSES)/stamp 179 "$(JAR)" cf $(@) -C $(VIZ_CLASSES) . 180 181 182$(VIZ_JDOC)/stamp: $(VIZ_JAVAS) 183 @mkdir -p $(@D) 184 "$(JAVADOC)" -private -d $(VIZ_JDOC) \ 185 -classpath "$(CLASSPATH)" \ 186 -sourcepath $(VIZ_SRC) \ 187 $(VIZ_JAVAS) && \ 188 touch $@ 189 190 191# --------------- 192# viztool 193# --------------- 194 195# Batik (for viztool) 196BATIK_LIBDIR = @BATIK_LIBDIR@ 197BATIK_JARS = batik-util.jar batik-script.jar batik-gvt.jar batik-bridge.jar\ 198 batik-gui-util.jar batik-swing.jar xml-apis-ext.jar 199BATIK_COPY = $(BATIK_JARS:%=jars/batik/%) 200 201# Javahelp (for viztool) 202JHELP_LIBDIR = @JHELP_LIBDIR@ 203JHELP_JAR = jhall.jar 204JHELP_COPY = $(JHELP_JAR:%=jars/jhelp/%) 205 206 207VIZTOOL_SRC = viztool/src 208VIZTOOL_PKG = components 209VIZTOOL_JAVAS = $(VIZTOOL_SRC)/$(VIZTOOL_PKG)/*.java 210VIZTOOL_RESS = $(VIZTOOL_SRC)/$(VIZTOOL_PKG)/resources 211VIZTOOL_HELP = $(VIZTOOL_SRC)/javahelp 212VIZTOOL_CLASSES = viztool/classes 213VIZTOOL_JAR = viztool.jar 214 215 216# Copy thirdparty files to avoid pathname syntax issues, 217# e.g. when using a Windows java under cygwin 218 219jars/batik/%.jar: $(BATIK_LIBDIR)/%.jar 220 @mkdir -p $(@D) 221 /bin/cp $< $@ 222 -@/bin/chmod $(PERM) $@ 223 224jars/jhelp/%.jar: $(JHELP_LIBDIR)/%.jar 225 @mkdir -p $(@D) 226 /bin/cp $< $@ 227 -@/bin/chmod $(PERM) $@ 228 229 230$(VIZTOOL_CLASSES)/stamp: $(BATIK_COPY) $(JHELP_COPY) 231 @mkdir -p $(VIZTOOL_CLASSES) 232 CP="$(CLASSPATH)$(PATHSEP)jars/jhelp/$(JHELP_JAR)" && \ 233 for jar in $(BATIK_JARS); do \ 234 CP="$$CP$(PATHSEP)jars/batik/$$jar"; \ 235 done && \ 236 "$(JAVAC)" $(JAVAFLAGS) -classpath "$$CP" -d $(VIZTOOL_CLASSES) \ 237 -sourcepath $(VIZTOOL_SRC) $(VIZTOOL_JAVAS) && \ 238 cp -pr $(VIZTOOL_RESS) $(VIZTOOL_CLASSES)/$(VIZTOOL_PKG) && \ 239 cp -pr $(VIZTOOL_HELP) $(VIZTOOL_CLASSES) && \ 240 touch $@ 241 242 243$(DESTDIR)/$(VIZTOOL_JAR): $(VIZTOOL_CLASSES)/stamp 244 "$(JAR)" cf $(@) -C $(VIZTOOL_CLASSES) . 245 246 247$(DESTDIR)/%.jar: jars/batik/%.jar 248 @mkdir -p $(@D) 249 /bin/cp $< $@ 250 -@/bin/chmod $(PERM) $@ 251 252$(DESTDIR)/%.jar: jars/jhelp/%.jar 253 @mkdir -p $(@D) 254 /bin/cp $< $@ 255 -@/bin/chmod $(PERM) $@ 256 257