diff --git a/Make/makedefs.cyg b/Make/makedefs.cyg index 74d93cc22..b7e111bd8 100755 --- a/Make/makedefs.cyg +++ b/Make/makedefs.cyg @@ -19,6 +19,7 @@ C++FLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS} SO_EXT = dll +DL_EXT = dll LDFLAGS = -O2 -W -Wall #LDFLAGS = -g -W -Wall diff --git a/Make/makedefs.freebsd b/Make/makedefs.freebsd index 47072fa24..0820468b1 100644 --- a/Make/makedefs.freebsd +++ b/Make/makedefs.freebsd @@ -15,6 +15,7 @@ C++FLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS} SO_EXT = so +DL_EXT = so FREEBSD_LOCALLIBS = -L/usr/local/lib -rpath /usr/local/lib diff --git a/Make/makedefs.irix.nonstd b/Make/makedefs.irix.nonstd index 79aaad466..b37524c98 100644 --- a/Make/makedefs.irix.nonstd +++ b/Make/makedefs.irix.nonstd @@ -13,6 +13,9 @@ CFLAGS = -O2 -n32 --OPT:Olimit=0 -DEBUG:woff=1682 -DEBUG:woff=3303 C++FLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS} +SO_EXT = so +DL_EXT = so + LDFLAGS = -O2 -n32 -OPT:Olimit=0 .SUFFIXES: .cpp .o diff --git a/Make/makedefs.irix.std b/Make/makedefs.irix.std index ee1b8c963..700cb5cdf 100644 --- a/Make/makedefs.irix.std +++ b/Make/makedefs.irix.std @@ -14,6 +14,7 @@ C++FLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS} SO_EXT = so +DL_EXT = so LDFLAGS = -O2 -n32 -LANG:std -OPT:Olimit=0 diff --git a/Make/makedefs.linux b/Make/makedefs.linux index b1527c061..523ada4d0 100644 --- a/Make/makedefs.linux +++ b/Make/makedefs.linux @@ -16,6 +16,7 @@ C++FLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS} SO_EXT = so +DL_EXT = so LDFLAGS = -O2 -W -Wall -L/usr/X11R6/lib #LDFLAGS = -g -W -Wall -L/usr/X11R6/lib diff --git a/Make/makedefs.macosx b/Make/makedefs.macosx index 81a0bf48b..51ea0fafd 100644 --- a/Make/makedefs.macosx +++ b/Make/makedefs.macosx @@ -2,7 +2,6 @@ MAKEDIR = $(OSGHOME)/Make INSTRULES = $(MAKEDIR)/instrules MAKEDEPEND = Makedepend OBJS = $(C++FILES:.cpp=.o) $(CFILES:.c=.o) $(YACCFILES:.y=.o) $(LEXFILES:.l=.o) -SO_EXT = so DEPFILES = $(OBJS:.o=.d) @@ -10,17 +9,16 @@ C++ = cc YFLAGS = -d LCINCS += -I/usr/local/include LC++INCS += ${LCINCS} -CFLAGS = -O2 -W -Wall $(LCINCS) +CFLAGS = -O2 -W -Wall $(LCINCS) -D__DARWIN_OSX__ C++FLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS} -LIBTOOL = libtool -LD = ld -PLUGINLIBS = $(TOP)/lib/osgPlugins/osgdb_rgb.SO_EXT $(TOP)/lib/osgPlugins/osgdb_3ds.SO_EXT $(TOP)/lib/osgPlugins/osgdb_osg.SO_EXT -MACOSXLIBS = $(TOP)/lib/libosg.SO_EXT $(TOP)/lib/libosgUtil.SO_EXT $(TOP)/lib/libosgGLUT.SO_EXT $(TOP)/lib/libosgDB.SO_EXT -PLUGINS = $(PLUGINLIBS) +# this distinction is necessary for Darwin / OS X as shared libs and loadable (dylib) modules +# are not the same thing +SO_EXT = dylib +DL_EXT = so -LDFLAGS = -all_load -framework GLUT -framework Carbon -L/usr/local/lib -L/usr/lib -L$(TOP)/lib/osgPlugins -ldl -lstdc++ -lm - +FRAMEWORKS = -framework GLUT -framework Carbon -framework OpenGL +LDFLAGS =-all_load -L/usr/local/lib -L/usr/lib DYNAMICLIBRARYLIB = PFLIBS = diff --git a/Make/makerules.cyg b/Make/makerules.cyg index 7b453885f..5fdfe05db 100755 --- a/Make/makerules.cyg +++ b/Make/makerules.cyg @@ -1,12 +1,16 @@ -all : $(MAKEDEPEND) $(TARGET) $(LIB) +all : $(MAKEDEPEND) $(TARGET) $(LOADABLE) $(LIB) $(TARGET) : $(OBJS) $(C++) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ +$(LOADABLE) : $(OBJS) + $(C++) $(LDFLAGS) -shared -Wl,--export-all-symbols $(OBJS) $(LIBS) \ + -Wl,--output-def,lib$(TARGET_BASENAME).def -Wl,--out-implib,$(OSGHOME)/lib/lib$(TARGET_BASENAME).a -o $@ + $(LIB) : $(OBJS) $(C++) $(LDFLAGS) -shared -Wl,--export-all-symbols $(OBJS) $(LIBS) \ - -Wl,--output-def,lib$(TARGET_BASENAME).def -Wl,--out-implib,$(TOP)/lib/lib$(TARGET_BASENAME).a -o $@ + -Wl,--output-def,lib$(TARGET_BASENAME).def -Wl,--out-implib,$(OSGHOME)/lib/lib$(TARGET_BASENAME).a -o $@ clean : rm -f $(OBJS) core $(TARGET) $(MAKEDEPEND) diff --git a/Make/makerules.freebsd b/Make/makerules.freebsd index d5c9e4a62..b4101812d 100644 --- a/Make/makerules.freebsd +++ b/Make/makerules.freebsd @@ -1,9 +1,12 @@ -all : $(MAKEDEPEND) $(TARGET) $(LIB) +all : $(MAKEDEPEND) $(TARGET) $(LOADABLE) $(LIB) $(TARGET) : $(OBJS) $(C++) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ +$(LOADABLE) : $(OBJS) + $(C++) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ + $(LIB) : $(OBJS) $(C++) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ diff --git a/Make/makerules.irix b/Make/makerules.irix index dfb00039a..2ff6af728 100644 --- a/Make/makerules.irix +++ b/Make/makerules.irix @@ -1,9 +1,12 @@ -all : $(TARGET) $(LIB) +all : $(TARGET) $(LOADABLE) $(LIB) $(TARGET) : $(OBJS) $(C++) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ +$(LOADABLE) : $(OBJS) + $(C++) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ + $(LIB) : $(OBJS) $(C++) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ diff --git a/Make/makerules.linux b/Make/makerules.linux index c5d0e6860..fc6dfb98f 100644 --- a/Make/makerules.linux +++ b/Make/makerules.linux @@ -1,5 +1,5 @@ -all : $(MAKEDEPEND) $(TARGET) $(LIB) +all : $(MAKEDEPEND) $(TARGET) $(LOADABLE) $(LIB) $(TARGET) : $(OBJS) $(C++) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ @@ -7,6 +7,9 @@ $(TARGET) : $(OBJS) $(LIB) : $(OBJS) $(C++) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ +$(LOADABLE) : $(OBJS) + $(C++) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ + clean : rm -f $(OBJS) core $(TARGET) $(MAKEDEPEND) touch $(MAKEDEPEND)