this repo has no description
at develop 3.9 kB view raw
1# Qecode Makefile 2# Largely inspired from the map makefile by Gregoire Dooms 3# 4# Jeremie Vautard, Universite d'Orleans 5 6# 7gecode_top_srcdir = ../../$(top_srcdir) 8gecode_top_builddir = ../.. 9 10qecode_top_srcdir = $(gecode_top_srcdir)/contribs/qecode 11qecode_top_builddir = . 12 13KERNELDLL := $(KERNELDLL:%=../../%) 14INTDLL := $(INTDLL:%=../../%) 15MMDLL := $(MMDLL:%=../../%) 16SEARCHDLL := $(SEARCHDLL:%=../../%) 17SUPPORTDLL := $(SUPPORTDLL:%=../../%) 18SUPPORTOBJ := $(SUPPORTOBJ:%=../../%) 19 20 21ifeq "$(LIBPREFIX)" "$(LINKPREFIX)" 22LINKSUPPORT:=../../$(LINKSUPPORT) 23LINKKERNEL:=../../$(LINKKERNEL) 24LINKINT:=../../$(LINKINT) 25LINKMM:=../../$(LINKMM) 26LINKSEARCH:=../../$(LINKSEARCH) 27LINKALL := $(LINKMM) $(LINKINT) $(LINKSEARCH) $(LINKKERNEL) 28else 29EXTRALINKFLAGS := -L../.. 30endif 31 32# 33# QECODE COMPONENTS 34# 35 36QECODESRC0 = QCOPPlus.cc myspace.cc OptVar.cc qsolver_qcop.cc qsolver_qcsp.cc Strategy.cc StrategyNode.cc QCSPPlusUnblockable.cc qsolver_unblockable.cc UnblockableViewValBranching.cc Work.cc Worker.cc WorkManager.cc qsolver_parallel.cc 37QECODEHDR0 = 38 39 40QECODESRC = $(QECODESRC0) 41QECODEHDR = qecode.hh $(QECODEHDR0) 42QECODEOBJ = $(QECODESRC:%.cc=%$(OBJSUFFIX)) 43QECODEFLAGS = \ 44 -I$(gecode_top_srcdir) -I$(gecode_top_builddir) \ 45 -I$(qecode_top_srcdir) -I$(qecode_top_builddir) \ 46 -L$(gecode_top_builddir) -L$(qecode_top_builddir) 47QECODEDLL = $(LIBPREFIX)@QECODE@$(DLLSUFFIX) 48QECODESTATICLIB = $(LIBPREFIX)@QECODE@$(STATICLIBSUFFIX) 49QECODELIB = $(LIBPREFIX)@QECODE@$(LIBSUFFIX) 50LINKQECODE = $(LINKPREFIX)@QECODE@$(LINKSUFFIX) 51 52LINKALL := $(LINKALL) $(LINKQECODE) 53 54ALLLIB := $(ALLLIB) $(QECODELIB) 55 56 57ifeq "@BUILDDLL@" "yes" 58DLLTARGETS = $(QECODEDLL) 59else 60DLTARGETS= 61endif 62 63ifeq "@BUILDSTATIC@" "yes" 64STATICTARGETS = \ 65 $(QECODESTATICLIB) 66else 67STATICTARGETS= 68endif 69 70LIBTARGETS= $(DLLTARGETS) $(STATICTARGETS) 71 72 73all : $(LIBTARGETS) 74 75# 76# Object targets 77# 78 79%$(OBJSUFFIX): $(qecode_top_srcdir)/%.cc 80 $(CXX) $(CXXFLAGS) $(QECODEFLAGS) \ 81 @COMPILEOBJ@$@ @CXXIN@ $< 82%$(SBJSUFFIX): $(qecode_top_srcdir)/%.cc 83 $(CXX) $(CXXFLAGS) $(QECODEFLAGS) \ 84 @COMPILESBJ@$@ @CXXIN@ $< 85 86 87 88 89# 90# DLL Targets 91# 92 93ifeq "$(DLLSUFFIX)" "$(LIBSUFFIX)" 94#linux 95$(QECODEDLL): $(QECODEOBJ) $(KERNELDLL) $(INTDLL) $(SEARCHDLL) $(SUPPORTDLL) $(MMDLL) 96 $(CXX) $(DLLFLAGS) $(QECODEOBJ) $(QECODEFLAGS) \ 97 @DLLPATH@ $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) $(LINKMM) $(LINKSUPPORT) \ 98 @LINKOUTPUT@$(QECODEDLL) 99 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOLINKSUFFIX)) 100 $(CREATELINK) $@ $(@:%$(DLLSUFFIX)=%$(SOSUFFIX)) 101else 102#win 103$(QECODEDLL) $(QECODELIB): $(QECODEOBJ) $(KERNELDLL) $(INTDLL) $(SEARCHDLL) $(SUPPORTDLL) $(MMDLL) 104 $(CXX) $(DLLFLAGS) $(QECODEOBJ) $(QECODEFLAGS)\ 105 @DLLPATH@ $(LINKKERNEL) $(LINKSEARCH) $(LINKINT) $(LINKMM) $(LINKSUPPORT) \ 106 @LINKOUTPUT@$(QECODEDLL) 107endif 108 109 110# 111# Static libraries 112# 113 114$(QECODESTATICLIB): $(QECODEOBJ) 115 $(AR) $(ARFLAGS) $@ $(QECODEOBJ) 116 $(RANLIB) $@ 117 118# 119# EXE targets 120# 121# 122 123 124#for linux: ? 125CXXFLAGS := $(CXXFLAGS) $(QECODEFLAGS) 126 127# 128# Autoconf 129# 130 131$(qecode_top_srcdir)/configure: $(qecode_top_srcdir)/configure.ac 132 (cd $(qecode_top_srcdir) && autoconf) 133config.status: $(qecode_top_srcdir)/configure 134 ../../config.status --recheck 135 ./config.status --recheck 136# use the sustitutions from gecode to generate the Makefile.in 137Makefile.in: $(qecode_top_srcdir)/Makefile.in.in ../../config.status 138 ../../config.status \ 139 --file Makefile.in:$(qecode_top_srcdir)/Makefile.in.in 140 141# use the sustitutions from configure to generate the Makefile 142Makefile: Makefile.in ./config.status 143 ./config.status --file ./Makefile:./Makefile.in 144 145 146.PHONY: clean veryclean distclean 147clean: 148 $(RMF) $(QECODEOBJ) $(QECODESBJ) 149 150veryclean: clean 151 $(RMF) $(LIBTARGETS) 152 $(RMF) $(LIBTARGETS:%$(DLLSUFFIX)=%.exp) $(LIBTARGETS:%$(DLLSUFFIX)=%.lib) 153 $(RMF) $(LIBTARGETS:%$(DLLSUFFIX)=%.ilk) $(LIBTARGETS:%$(DLLSUFFIX)=%.pdb) 154 $(RMF) $(QECODEDLL) 155 156distclean: veryclean 157 $(RMF) config.log config.status 158 159.PHONY: doc 160doc: $(QECODEHDR) $(QECODESRC) 161 mkdir -p doc/html 162 doxygen doxygen.conf