From a1eb3a36064e13c725c6d8f6301b43a431783afd Mon Sep 17 00:00:00 2001 From: jestin Date: Fri, 25 Jun 2004 18:27:39 +0000 Subject: le Makefile peut être utilisé sur Solaris, OSX et Linux. Par dégaut, c'est pour linux. ivy.c corrige un unbindmsg ivyprobe: -n pour le nom de l'agent, -v pour la version de la lib ivytcl: plein de problèmes réglés, d'autres introduits, notamment pour la gestion de la boucle d'évéenents sous windows ... Test.tcl déplacé dans les exemples --- src/Makefile | 118 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 44 deletions(-) (limited to 'src/Makefile') diff --git a/src/Makefile b/src/Makefile index 836bb0f..7932216 100644 --- a/src/Makefile +++ b/src/Makefile @@ -8,38 +8,58 @@ # # Authors: François-Régis Colin # Stéphane Chatty +# Yannick Jestin # -# $Id$ -# # Please refer to file version.h for the # copyright notice regarding this software # +# change this in version.h too !!!! MAJOR=3 -MINOR=5 +MINOR=6 XTINC = -I/usr/X11R6/include -XTLIB = -L/usr/X11R6/lib +XTLIB = -L/usr/X11R6/lib -lXt -lX11 -lSM -lICE GTKINC = `gtk-config --cflags` -#GTKINC = -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include GTKLIB = `gtk-config --libs` -#GTKLIB = -L/usr/lib -L/usr/X11R6/lib GLUTINC = -I/usr/include -I. -GLUTLIB = -L. +GLUTLIB = -L. -lglut -lGLU -lGL -lX11 -lXmu +# use these if you want standard Tcl TCLINCL = -I/usr/include/tcl8.4 TCLLIB = -ltcl8.4 +# use these if you want to use Aqua Tcl on macOSX +#TCLINC = -I/Library/Frameworks/Tcl.framework/Headers +#TCLLIB = -framework Tcl +PCREINC = `pcre-config --cflags` +PCRELIB = `pcre-config --libs` +#PCREOBJ = `pcre-config --prefix`/lib/libpcre.a +PCREOBJ = + +EXTRALIB= +#EXTRALIB=-lsocket -lnsl # for solaris CC=gcc -CFLAGS = -g +LIBTOOL=ar q # linux and solaris +#LIBTOOL=libtool -static -o + +#REGEXP = -DGNU_REGEXP # deprecated ! +REGEXP = -DUSE_PCRE_REGEX +# on activeTCL , set #define CHANNEL to null, and add ivyloop.o in the ivytcl target, +# see below +CHANNEL = -DTCL_CHANNEL_INTEGRATION +CFLAGS = -g + OBJ = ivyloop.o timer.o ivysocket.o ivy.o GOBJ = ivyloop.o timer.o ivysocket.o givy.o XTOBJ = ivyxtloop.o ivysocket.o ivy.o GTKOBJ = ivygtkloop.o ivysocket.o ivy.o GLUTOBJ = ivyglutloop.o ivysocket.o ivy.o -TCLOBJ = ivytcl.o ivyloop.o timer.o ivysocket.o givy.o +TCLOBJ = ivytcl.o timer.o ivysocket.o givy.o +# WINDOWS add ivyloop.o if TCL_CHANNEL_INTEGRATION is not set TARGETS = ivyprobe ivygtkprobe ivyxtprobe -# not yiet need Modified Glut ivyglutprobe +TARGETLIBS=libivy.so.$(MAJOR).$(MINOR) libgivy.so.$(MAJOR).$(MINOR) libxtivy.so.$(MAJOR).$(MINOR) libgtkivy.so.$(MAJOR).$(MINOR) libtclivy.so.$(MAJOR).$(MINOR) +# not yet need Modified Glut ivyglutprobe .c.o: $(CC) $(CFLAGS) -c $*.c @@ -47,96 +67,106 @@ TARGETS = ivyprobe ivygtkprobe ivyxtprobe all: static-libs commands shared-libs static-libs: libivy.a libgivy.a libxtivy.a libgtkivy.a libtclivy.a -# not yiet need Modified Glut libglutivy.a +# not yet need Modified Glut libglutivy.a -shared-libs: libivy.so.$(MAJOR).$(MINOR) libgivy.so.$(MAJOR).$(MINOR) libxtivy.so.$(MAJOR).$(MINOR) libgtkivy.so.$(MAJOR).$(MINOR) libtclivy.so.$(MAJOR).$(MINOR) -# not yiet need Modified Glut libglutivy.so.$(MAJOR).$(MINOR) +shared-libs: $(TARGETLIBS) +# not yet need Modified Glut libglutivy.so.$(MAJOR).$(MINOR) commands: $(TARGETS) ivytcl.o: ivytcl.c - $(CC) -DGNU_REGEXP -c $(CFLAGS) $(TCLINCL) -o ivytcl.o ivytcl.c + $(CC) -c $(CFLAGS) $(TCLINCL) $(CHANNEL) ivytcl.c + +ivy.o: ivy.c + $(CC) -c $(CFLAGS) $(REGEXP) $(PCREINC) ivy.c givy.o: ivy.c - $(CC) -DGNU_REGEXP -c $(CFLAGS) -o givy.o ivy.c + $(CC) -c $(CFLAGS) -o givy.o ivy.c ivyglutloop.o: ivyglutloop.c ivyglutloop.h - $(CC) -c $(CFLAGS) $(GLUTINC) -o ivyglutloop.o ivyglutloop.c + $(CC) -c $(CFLAGS) $(GLUTINC) ivyglutloop.c ivygtkloop.o: ivygtkloop.c ivygtkloop.h - $(CC) -c $(CFLAGS) $(GTKINC) -o ivygtkloop.o ivygtkloop.c + $(CC) -c $(CFLAGS) $(GTKINC) ivygtkloop.c -ivyprobe: ivyprobe.o libivy.a - $(CC) $(CFLAGS) -o ivyprobe ivyprobe.o -L. -livy - # SOLARIS: use this line - # $(CC) $(CFLAGS) -o ivyprobe ivyprobe.o -L. -livy -lsocket -lnsl +ivyprobe: ivyprobe.o + $(CC) $(CFLAGS) -o $@ ivyprobe.o -L. -livy $(PCRELIB) $(EXTRALIB) ivyxtprobe.o : ivyprobe.c - $(CC) $(CFLAGS) -c ivyprobe.c -o ivyxtprobe.o $(XTINC) -DXTMAINLOOP + $(CC) $(CFLAGS) -DXTMAINLOOP -c ivyprobe.c -o $@ $(XTINC) ivyxtprobe: ivyxtprobe.o libxtivy.a - $(CC) -o ivyxtprobe ivyxtprobe.o -L. $(XTLIB) -lxtivy -lXt -lX11 -lSM -lICE + $(CC) -o $@ ivyxtprobe.o -L. $(XTLIB) -lxtivy $(PCRELIB) $(EXTRALIB) ivygtkprobe.o : ivyprobe.c - $(CC) $(CFLAGS) -c ivyprobe.c -o ivygtkprobe.o $(XTINC) -DGTKMAINLOOP + $(CC) $(CFLAGS) -DGTKMAINLOOP -c ivyprobe.c -o ivygtkprobe.o $(XTINC) ivygtkprobe: ivygtkprobe.o libgtkivy.a - $(CC) -o ivygtkprobe ivygtkprobe.o -L. $(GTKLIB) -lgtkivy -lgtk -lgdk -lglib -lX11 -lSM -lICE -lm + $(CC) -o ivygtkprobe ivygtkprobe.o -L. $(GTKLIB) -lgtkivy $(PCRELIB) $(EXTRALIB) ivyglutprobe.o : ivyprobe.c - $(CC) $(CFLAGS) -c ivyprobe.c -o ivyglutprobe.o $(GLUTINC) -DGLUTMAINLOOP + $(CC) $(CFLAGS) -DGLUTMAINLOOP -c ivyprobe.c -o ivyglutprobe.o $(GLUTINC) ivyglutprobe: ivyglutprobe.o libglutivy.a - $(CC) -o ivyglutprobe ivyglutprobe.o -L. $(GLUTLIB) -lglutivy -lglut -lGLU -lGL -lX11 -lXmu + $(CC) -o ivyglutprobe ivyglutprobe.o -L. $(GLUTLIB) -lglutivy $(PCRELIB) $(EXTRALIB) libivy.a: $(OBJ) rm -f $@ - ar q $@ $(OBJ) + $(LIBTOOL) $@ $(OBJ) libgivy.a: $(GOBJ) rm -f $@ - ar q $@ $(GOBJ) + $(LIBTOOL) $@ $(GOBJ) libxtivy.a: $(XTOBJ) rm -f $@ - ar cq $@ $(XTOBJ) + $(LIBTOOL) $@ $(XTOBJ) libgtkivy.a: $(GTKOBJ) rm -f $@ - ar cq $@ $(GTKOBJ) + $(LIBTOOL) $@ $(GTKOBJ) libglutivy.a: $(GLUTOBJ) rm -f $@ - ar cq $@ $(GLUTOBJ) + $(LIBTOOL) $@ $(GLUTOBJ) libtclivy.a: $(TCLOBJ) rm -f $@ - ar cq $@ $(TCLOBJ) + $(LIBTOOL) $@ $(TCLOBJ) $(PCREOBJ) +# TODO this PCREOBJ is a dirty hack libivy.so.$(MAJOR).$(MINOR): $(OBJ) - $(CC) -shared -Wl,-soname,libivy.so.$(MAJOR) -o $@ $(OBJ) -lc + $(CC) -shared -Wl,-soname,libivy.so.$(MAJOR) -o $@ $(OBJ) +# $(CC) -G -Wl,-h,libivy.so.$(MAJOR) -o $@ $(OBJ) #solaris +# libtool -dynamic -o $@ $(OBJ) $(PCRELIB) -lc libgivy.so.$(MAJOR).$(MINOR): $(GOBJ) - $(CC) -shared -Wl,-soname,libgivy.so.$(MAJOR) -o $@ $(GOBJ) -lc + $(CC) -shared -Wl,-soname,libgivy.so.$(MAJOR) -o $@ $(GOBJ) +# $(CC) -G -Wl,-h,libgivy.so.$(MAJOR) -o $@ $(GOBJ) #solaris +# libtool -dynamic -o $@ $(GOBJ) $(PCRELIB) -lc libxtivy.so.$(MAJOR).$(MINOR): $(XTOBJ) - $(CC) -shared -Wl,-soname,libxtivy.so.$(MAJOR) -o $@ \ - $(XTOBJ) $(XTLIB) -lXt -lX11 -lc + $(CC) -shared -Wl,-soname,libxtivy.so.$(MAJOR) -o $@ $(XTOBJ) $(XTLIB) +# $(CC) -G -Wl,-h,libxtivy.so.$(MAJOR) -o $@ $(XTOBJ) $(XTLIB) #solaris +# libtool -dynamic -o $@ $(XTOBJ) $(XTLIB) $(PCRELIB) -lc libgtkivy.so.$(MAJOR).$(MINOR): $(GTKOBJ) - $(CC) -shared -Wl,-soname,libgtkivy.so.$(MAJOR) -o $@ \ - $(GTKOBJ) $(GTKLIB) -lX11 -lc + $(CC) -shared -Wl,-soname,libgtkivy.so.$(MAJOR) -o $@ $(GTKOBJ) $(GTKLIB) +# $(CC) -G -Wl,-h,libgtkivy.so.$(MAJOR) -o $@ $(GTKOBJ) $(GTKLIB) #solaris +# libtool -dynamic -o $@ $(GTKOBJ) $(GTKLIB) $(PCRELIB) -lc libglutivy.so.$(MAJOR).$(MINOR): $(GTKOBJ) - $(CC) -shared -Wl,-soname,libglutivy.so.$(MAJOR) -o $@ \ - $(GLUTOBJ) $(GLUTLIB) -lX11 -lc + $(CC) -shared -Wl,-soname,libglutivy.so.$(MAJOR) -o $@ $(GLUTOBJ) $(GLUTLIB) +# $(CC) -G -Wl,-h,libglutivy.so.$(MAJOR) -o $@ $(GLUTOBJ) $(GLUTLIB) # solaris +# libtool -dynamic -o $@ $(GLUTOBJ) $(GLUTLIB) $(PCRELIB) -lc libtclivy.so.$(MAJOR).$(MINOR): $(TCLOBJ) - $(CC) -shared -Wl,-soname,libtclivy.so.$(MAJOR) -o $@ \ - $(TCLOBJ) $(TCLLIB) -lc + $(CC) -shared -Wl,-soname,libtclivy.so.$(MAJOR) -o $@ $(TCLOBJ) $(TCLLIB) $(PCREOBJ) +# $(CC) -G -Wl,-h,libtclivy.so.$(MAJOR) -o $@ $(TCLOBJ) $(TCLLIB) $(PCREOBJ) # solaris +# libtool -dynamic -o $@ $(TCLOBJ) $(TCLLIB) $(PCREOBJ) $(PCRELIB) -lc clean: - -rm -f $(TARGETS) *.o *.a *.so *.so.* *~ + -rm -f $(TARGETS) $(TARGETLIBS) *.o *.a *.so *.so.* *~ installlibs: static-libs shared-libs test -d $(PREFIX)/usr/lib || mkdirhier $(PREFIX)/usr/lib -- cgit v1.1