diff --git a/Makefile b/Makefile index be71135824bc19a50c698cb19bdbac2951c84c10..c8e4faeec589803ba63a0177a052a8a496f40d98 100644 --- a/Makefile +++ b/Makefile @@ -305,6 +305,7 @@ MAKEMAKEINFO = build/unix/makeinfo.sh MAKECHANGELOG = build/unix/makechangelog.sh MAKEHTML = build/unix/makehtml.sh MAKELOGHTML = build/unix/makeloghtml.sh +MAKECINTDLL = build/unix/makecintdll.sh MAKECINTDLLS = build/unix/makecintdlls.sh MAKESTATIC = build/unix/makestatic.sh RECONFIGURE = build/unix/reconfigure.sh diff --git a/build/unix/makecintdll.sh b/build/unix/makecintdll.sh new file mode 100755 index 0000000000000000000000000000000000000000..835e162dd255c8e6997d90fb4e602916a75c00f3 --- /dev/null +++ b/build/unix/makecintdll.sh @@ -0,0 +1,112 @@ +#! /bin/sh + +# Script to create auxiliary CINT dll's. +# Called by main Makefile. +# +# Author: Fons Rademakers, 27/7/2000 + +PLATFORM=$1 ; shift +if [ $PLATFORM != "clean" ]; then + DLLNAME=$1 ; shift + DLLDIRNAME=$1 ; shift + DLLHEADERS=$1 ; shift + CINT=$1 ; shift + ROOTCINT=$1 ; shift + MAKELIB=$1 ; shift + CXX=$1 ; shift + CC=$1 ; shift + LD=$1 ; shift + OPT=$1 ; shift + CINTCXXFLAGS=$1 ; shift + CINTCFLAGS=$1 ; shift + LDFLAGS=$1 ; shift + SOFLAGS=$1 ; shift + SOEXT=$1 ; shift + COMPILER=$1 ; shift +fi +if [ $PLATFORM = "macosx" ]; then + macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2` + AUXCXXFLAGS=-fno-inline +fi +if [ $PLATFORM = "win32" ]; then + EXESUF=.exe + CC=`pwd`/$CC +fi +if [ "x$COMPILER" = "xgnu" ]; then + GCC_MAJOR=`$CXX -dumpversion 2>&1 | cut -d'.' -f1` + GCC_MINOR=`$CXX -dumpversion 2>&1 | cut -d'.' -f2` +fi + +# Filter out the explicit link flag +if [ "x`echo $MAKELIB | grep build/unix/makelib.sh`" != "x" ]; then + MAKELIB=`echo $MAKELIB | sed -e "s/ -x//g"` +fi + +CINTDIRL=cint/lib +CINTDIRI=cint/include +CINTDIRS=cint/stl + +clean() { + rm -f $CINTDIRI/$DLLNAME.dll $CINTDIRI/$DLLNAME.so.* +} + +execute() { + echo $1 + $1 +} + +rename() { + if [ "$SOEXT" != "dll" ]; then + if [ "$PLATFORM" = "macosx" ]; then + if [ $macosx_minor -ge 4 ]; then + mv $1.$SOEXT $1.dll + rm -f $1.so + else + mv $1.so $1.dll + rm -f $1.$SOEXT + fi + else + mv $1.$SOEXT $1.dll + fi + fi +} + +macrename() { + if [ "$PLATFORM" = "macosx" ]; then + if [ $macosx_minor -ge 4 ]; then + mv -f $1.$SOEXT $1.so + else + rm -f $1.$SOEXT + fi + fi; +} + +cpdllwin32() { + mv -f bin/$DLLNAME.dll $CINTDIRI +} + +##### first delete old dll's ##### + +clean + +if [ $PLATFORM = "clean" ]; then + exit 0; +fi + +##### $DLLNAME.dll & stdcxxfunc.dll ##### + +DLLDIR=$CINTDIRL/$DLLDIRNAME + +execute "$CINT -K -w1 -z$DLLNAME -n$DLLDIR/G__$DLLNAME.c -D__MAKECINT__ \ + -DG__MAKECINT -c-2 -Z0 -I$DLLDIR $DLLHEADERS" +execute "$CC $OPT $CINTCFLAGS -I. -o $DLLDIR/G__$DLLNAME.o -I$DLLDIR \ + -c $DLLDIR/G__$DLLNAME.c" +$MAKELIB $PLATFORM $LD "$LDFLAGS" "$SOFLAGS" $DLLNAME.$SOEXT \ + $CINTDIRI/$DLLNAME.$SOEXT "$DLLDIR/G__$DLLNAME.o" +rename $CINTDIRI/$DLLNAME + +if [ $PLATFORM = "win32" ]; then + cpdllwin32 +fi + +exit 0 diff --git a/cint/Module.mk b/cint/Module.mk index 35f79f39475aaaca31c33bf3b615fe4cc2d056c3..1fe9ee1831565670cae2c91d34bbd74d3a70ea07 100644 --- a/cint/Module.mk +++ b/cint/Module.mk @@ -13,6 +13,7 @@ CINTDIRI := $(CINTDIR)/inc CINTDIRM := $(CINTDIR)/main CINTDIRT := $(CINTDIR)/tool CINTDIRL := $(CINTDIR)/lib +CINTDIRDLLS := $(CINTDIR)/include ##### libCint ##### CINTH := $(wildcard $(MODDIRI)/*.h) @@ -309,3 +310,10 @@ $(CINTDIRS)/v6_loadfile_tmp.d: $(CINTDIRS)/v6_loadfile.cxx $(RMKDEP) @cp $(CINTDIRS)/v6_loadfile.cxx $(CINTDIRS)/v6_loadfile_tmp.cxx $(MAKEDEP) $@ "$(CXXFLAGS)" $(CINTDIRS)/v6_loadfile_tmp.cxx > $@ @rm -f $(CINTDIRS)/v6_loadfile_tmp.cxx + +##### cintdlls ###### + +$(CINTDIRDLLS)/stdfunc.dll: $(CINTTMP) $(ROOTCINTTMPEXE) cint/lib/stdstrct/stdfunc.h + @$(MAKECINTDLL) $(PLATFORM) stdfunc stdstrct stdfunc.h "$(CINTTMP)" "$(ROOTCINTTMP)" \ + "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \ + "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)" diff --git a/qt/Module.mk b/qt/Module.mk index 9e555c47f3678afbfa9c2700f6b6ec8892305dc9..f3f27f098a61bd9c9024045aacea36c157a5f1ca 100644 --- a/qt/Module.mk +++ b/qt/Module.mk @@ -99,3 +99,11 @@ $(sort $(GQTMOCO) $(GQTO)): %.o: %.cxx $(GQTMOC): $(GQTDIRS)/moc_%.cxx: $(GQTDIRI)/%.h $(QTMOCEXE) $< -o $@ + +##### cintdlls ###### + +$(CINTDIRDLLS)/qtcint: $(CINTTMP) $(ROOTCINTTMPEXE) cint/lib/qt/qtcint.h cint/lib/qt/qtclasses.h cint/lib/qt/qtglobals.h cint/lib/qt/qtfunctions.h + @$(MAKECINTDLL) $(PLATFORM) qtcint qt "qtcint.h qtclasses.h qtglobals.h qtfunctions.h" "$(CINTTMP)" "$(ROOTCINTTMP)" \ + "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \ + "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)" + diff --git a/thread/Module.mk b/thread/Module.mk index 285c7223accb1dc8cb0bcab0cec96d2c79f78734..f470a9b5b95d6189beb4c4078701a9b270f22314 100644 --- a/thread/Module.mk +++ b/thread/Module.mk @@ -99,3 +99,12 @@ distclean-thread: clean-thread @rm -f $(THREADDEP) $(THREADDS) $(THREADDH) $(THREADLIB) distclean:: distclean-thread + +##### cintdlls ###### + +ifneq ($(ARCH),win32) +$(CINTDIRDLLS)/pthread.dll: $(CINTTMP) $(ROOTCINTTMPEXE) cint/lib/pthread/pthd.h + @$(MAKECINTDLL) $(PLATFORM) pthread pthread pthd.h "$(CINTTMP)" "$(ROOTCINTTMP)" \ + "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \ + "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)" +endif \ No newline at end of file