Parent:
[de82f1]
(diff)
Child:
[b2eeec]
(diff)
Download this file
mkMake
195 lines (177 with data), 5.2 kB
#!/bin/sh
mk=Makefile
depth=${depth:-..}
sys=`uname`
SRC_CPP="\
${depth}/aspell/rclaspell.cpp \
${depth}/common/beaglequeuecache.cpp \
${depth}/common/cstr.cpp \
${depth}/common/rclconfig.cpp \
${depth}/common/rclinit.cpp \
${depth}/common/textsplit.cpp \
${depth}/common/unacpp.cpp \
${depth}/index/beaglequeue.cpp \
${depth}/index/bglfetcher.cpp \
${depth}/index/fetcher.cpp \
${depth}/index/fsfetcher.cpp \
${depth}/index/fsindexer.cpp \
${depth}/index/indexer.cpp \
${depth}/index/mimetype.cpp \
${depth}/index/subtreelist.cpp \
${depth}/internfile/htmlparse.cpp \
${depth}/internfile/internfile.cpp \
${depth}/internfile/mh_exec.cpp \
${depth}/internfile/mh_execm.cpp \
${depth}/internfile/mh_html.cpp \
${depth}/internfile/mh_mail.cpp \
${depth}/internfile/mh_mbox.cpp \
${depth}/internfile/mh_text.cpp \
${depth}/internfile/mimehandler.cpp \
${depth}/internfile/myhtmlparse.cpp \
${depth}/internfile/txtdcode.cpp \
${depth}/internfile/uncomp.cpp \
${depth}/query/docseq.cpp \
${depth}/query/docseqdb.cpp \
${depth}/query/docseqhist.cpp \
${depth}/query/filtseq.cpp \
${depth}/query/dynconf.cpp \
${depth}/query/plaintorich.cpp \
${depth}/query/recollq.cpp \
${depth}/query/reslistpager.cpp \
${depth}/query/sortseq.cpp \
${depth}/query/wasastringtoquery.cpp \
${depth}/query/wasatorcl.cpp \
${depth}/rcldb/daterange.cpp \
${depth}/rcldb/expansiondbs.cpp \
${depth}/rcldb/rclabstract.cpp \
${depth}/rcldb/rcldb.cpp \
${depth}/rcldb/rcldoc.cpp \
${depth}/rcldb/rcldups.cpp \
${depth}/rcldb/rclquery.cpp \
${depth}/rcldb/rclterms.cpp \
${depth}/rcldb/searchdata.cpp \
${depth}/rcldb/searchdataxml.cpp \
${depth}/rcldb/stemdb.cpp \
${depth}/rcldb/stoplist.cpp \
${depth}/rcldb/synfamily.cpp \
${depth}/unac/unac.cpp \
${depth}/utils/base64.cpp \
${depth}/utils/circache.cpp \
${depth}/utils/closefrom.cpp \
${depth}/utils/conftree.cpp \
${depth}/utils/copyfile.cpp \
${depth}/utils/cpuconf.cpp \
${depth}/utils/debuglog.cpp \
${depth}/utils/ecrontab.cpp \
${depth}/utils/execmd.cpp \
${depth}/utils/fstreewalk.cpp \
${depth}/utils/idfile.cpp \
${depth}/utils/fileudi.cpp \
${depth}/utils/md5.cpp \
${depth}/utils/mimeparse.cpp \
${depth}/utils/netcon.cpp \
${depth}/utils/pathut.cpp \
${depth}/utils/pxattr.cpp \
${depth}/utils/rclionice.cpp \
${depth}/utils/readfile.cpp \
${depth}/utils/smallut.cpp \
${depth}/utils/strmatcher.cpp \
${depth}/utils/transcode.cpp \
${depth}/utils/wipedir.cpp \
${depth}/utils/x11mon.cpp \
"
SRC_CC="\
${depth}/bincimapmime/mime-parsefull.cc \
${depth}/bincimapmime/mime-parseonlyheader.cc \
${depth}/bincimapmime/mime-printbody.cc \
${depth}/bincimapmime/mime.cc \
${depth}/bincimapmime/convert.cc \
${depth}/bincimapmime/iodevice.cc \
${depth}/bincimapmime/iofactory.cc \
"
for c in $SRC_CPP;do
o=`basename $c .cpp`.o
OBJS="$OBJS $o"
d=`basename $c .cpp`.dep
cp /dev/null $d
s=`basename $c .cpp`.dep.stamp
DEPS="$DEPS $s"
done
for c in $SRC_CC;do
o=`basename $c .cc`.o
OBJS="$OBJS $o"
d=`basename $c .cc`.dep
cp /dev/null $d
s=`basename $c .cc`.dep.stamp
DEPS="$DEPS $s"
done
# The objects need to depend on the localdefs file in case it is
# changed by a re-configure (it has the local compile flags)
defs=\$\(depth\)/mk/localdefs
test -f $mk && chmod +w $mk
if test $sys = "Darwin";then
NODYNLIB='#'
fi
cat > $mk <<EOF
# DONT EDIT BY HAND: created by script mkMake
depth = ${depth}
include \$(depth)/mk/sysconf
LIBRECOLL=librecoll.so.\$(RCLLIBVERSION)
LIBS = librecoll.a
${NODYNLIB}LIBS = librecoll.a \$(LIBRECOLL)
all: \$(LIBS)
OBJS = $OBJS
DEPS = $DEPS
librecoll.a : \$(DEPS) \$(OBJS)
ar ru librecoll.a \$(OBJS)
\$(RANLIB) librecoll.a
# Note that we are using the Recoll release number in the soname. There is
# no effort whatsoever to maintain any kind of ABI compat in this lib. Only
# programs or modules from the same Recoll release can be compatible.
\$(LIBRECOLL): \$(DEPS) \$(OBJS)
g++ -shared -Wl,--no-undefined -Wl,--warn-unresolved-symbols \
-Wl,-soname=\$(LIBRECOLL) -o \$(LIBRECOLL) \$(OBJS) \
\$(LIBXAPIAN) \$(LIBICONV) \$(X_LIBX11) \$(LIBSYS)
rm -f librecoll.so
ln -s \$(LIBRECOLL) librecoll.so
EOF
for c in $SRC_CPP;do
o=`basename $c .cpp`.o
echo "$o : $c $defs" >> $mk
echo " \$(CXX) \$(ALL_CXXFLAGS) -c $c" >> $mk
done
for c in $SRC_CC;do
o=`basename $c .cc`.o
echo "$o : $c $defs" >> $mk
echo " \$(CXX) \$(ALL_CXXFLAGS) -c $c" >> $mk
done
cat >> $mk <<EOF
depend: \$(DEPS)
clean:
rm -f \$(OBJS) \$(LIBS) \$(DEPS) librecoll.so *.stamp
for i in *.dep;do test -f \$\$i && cp /dev/null \$\$i;done
distclean: clean
rm -f *.dep
EOF
for c in $SRC_CPP;do
d=`basename $c .cpp`.dep
s=`basename $c .cpp`.dep.stamp
echo "$s : $c $defs" >> $mk
echo " \$(CXX) -M \$(ALL_CXXFLAGS) $c > $d" >> $mk
echo " touch $s" >> $mk
done
for c in $SRC_CPP;do
d=`basename $c .cpp`.dep
echo "include $d" >> $mk
done
for c in $SRC_CC;do
d=`basename $c .cc`.dep
s=`basename $c .cc`.dep.stamp
echo "$s : $c $defs" >> $mk
echo " \$(CXX) -M \$(ALL_CXXFLAGS) $c > $d" >> $mk
echo " touch $s" >> $mk
done
for c in $SRC_CC;do
d=`basename $c .cc`.dep
echo "include $d" >> $mk
done