Fixes for cygwin and mingw builds.

This commit is contained in:
Robert Osfield
2002-02-09 10:24:39 +00:00
parent 254d22ec90
commit ed45cccc25
12 changed files with 246 additions and 91 deletions

View File

@@ -15,6 +15,9 @@ YFLAGS = -d
CFLAGS = -O2 -DWIN32 -W -Wall $(LCINCS)
#CFLAGS = -g -DWIN32 -W -Wall $(LCINCS)
# need thunking when using wxWindows
# CFLAGS += -fvtable-thunks
C++FLAGS = ${CFLAGS}
CPPFLAGS = ${CFLAGS}
@@ -24,6 +27,9 @@ DL_EXT = dll
LDFLAGS = -O2 -W -Wall
#LDFLAGS = -g -W -Wall
# need thunking when using wxWindows
# LDFLAGS += -fvtable-thunks
LINKERARGS =
DYNAMICLIBRARYLIB =
@@ -73,3 +79,17 @@ TARGET_BIN_FILES = ""
TARGET_INCLUDE_FILES = ""
TARGET_DATA_FILES = ""
TARGET_LOADER_FILES = ""
WXDIR = /src/wxMSW
WX_CFLAGS = -DWXUSINGDLL -D_X86_=1 -DWIN32 -D_WIN32 -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -I$(WXDIR)/include -I$(WXDIR)/contrib/include -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff -I$(WXDIR)/include/wx/msw/gnuwin32 -DSTRICT -D__WXMSW__ -D__WINDOWS__ -D__WXDEBUG__ -Wall -mwin32 -fno-pcc-struct-return -O2 -fno-exceptions -DWIN32_LEAN_AND_MEAN
# -fno-rtti
WX_CPPFLAGS = -DWXUSINGDLL -D_X86_=1 -DWIN32 -D_WIN32 -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -I$(WXDIR)/include -I$(WXDIR)/contrib/include -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff -I$(WXDIR)/include/wx/msw/gnuwin32 -DSTRICT -D__WXMSW__ -D__WINDOWS__ -D__WXDEBUG__ -Wall -mwin32 -fno-pcc-struct-return -O2 -fno-exceptions -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1
# -fno-rtti
WX_LDFLAGS = -L$(WXDIR)/lib -L$(WXDIR)/contrib/lib
WX_LD_LIBS =
WX_LIBS = $(WXDIR)/lib/libwx23_1.a -lpng -ljpeg -ltiff -lz -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid

View File

@@ -1,67 +0,0 @@
MAKEDIR = $(OSGHOME)/Make
INSTRULES = $(MAKEDIR)/instrules
MAKEDEPEND = Makedepend
OBJS = $(C++FILES:.cpp=.o) $(CFILES:.c=.o) $(YACCFILES:.y=.o) $(LEXFILES:.l=.o)
DEPFILES = $(OBJS:.o=.d)
C++ = CC
YFLAGS = -d
#CFLAGS = -O2 -n32 -MDupdate $(MAKEDEPEND) -OPT:Olimit=0 -DEBUG:woff=1682 -DEBUG:woff=3303
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
.cpp.o:
$(C++) $(C++FLAGS) -c $<
LINKERARGS =
DYNAMICLIBRARYLIB =
PFLOADERPATH = /usr/lib32/libpfdb
GLUTLIB = -lglut
#
# TARGET_DIRS are directories that would not exist on the system except
# for the presence of OpenSceneGraph. 'make instclean' removes these
# directories
#
TARGET_DIRS = \
/usr/include/osg \
/usr/include/osgDB \
/usr/include/osgGLUT \
/usr/include/osgUtil \
/usr/include/osgText \
/usr/share/OpenSceneGraph\
/usr/share/OpenSceneGraph/data\
/usr/share/OpenSceneGraph/data/Images\
/usr/share/OpenSceneGraph/data/Test\
/usr/lib32/osgPlugins\
TARGET_BIN = /usr/bin
TARGET_LIB = /usr/lib32
TARGET_INCLUDE = /usr/include
TARGET_DATA = /usr/share/OpenSceneGraph/data
TARGET_LOADER_LIB = /usr/lib/osgPlugins
#
# This definitions are necessary for IRIX. The following statement
# does not work for smake using a sh:
#
# for variable in $(LIST); do ...; done
#
# .. if $(LIST) is a NULL variable. So we have to define 0 length
# strings and check for them inside the for loop
#
TARGET_LIB_FILES = ""
TARGET_BIN_FILES = ""
TARGET_INCLUDE_FILES = ""
TARGET_DATA_FILES = ""
TARGET_LOADER_FILES = ""

98
Make/makedefs.mingw Normal file
View File

@@ -0,0 +1,98 @@
MAKEDIR = $(OSGHOME)/Make
INSTRULES = $(MAKEDIR)/instrules
MAKEDEPEND = Makedepend
MINGW_HOME = d:/usr/mingw
OBJS = $(C++FILES:.cpp=.o) $(CFILES:.c=.o) $(YACCFILES:.y=.o) $(LEXFILES:.l=.o)
DEPFILES = $(OBJS:.o=.d)
C++ = c++
# need thunking when using wxWindows
# C++ += -fvtable-thunks
YFLAGS = -d
#LCINCS += -I/usr/X11R6/include
#LC++INCS += ${LCINCS}
OPT_FLAGS = -O
DBG_FLAGS = -g
WARN_FLAGS = -Wall -W
LDFLAGS = $(OPT_FLAGS) $(DBG_FLAGS) $(WARN_FLAGS)
CFLAGS = -DWIN32 $(LDFLAGS) $(LCINCS)
C++FLAGS = ${CFLAGS}
CPPFLAGS = ${CFLAGS}
SO_EXT = dll
DL_EXT = dll
LINKERARGS =
DYNAMICLIBRARYLIB =
PFLOADERPATH = /usr/lib/libpfdb
GLUTLIB = -lglut32
GL_LIBS = -lglu32 -lopengl32
X_LIBS = -lgdi32 -luser32
OSGDB_LIBS = -losgdb_3ds -losgdb_bmp -losgdb_dw -losgdb_flt -losgdb_jpg -losgdb_lwo -losgdb_obj -losgdb_osg -losgdb_osgtgz -losgdb_pic -losgdb_png -losgdb_rgb -losgdb_tga -losgdb_tgz -losgdb_tiff -losgdb_zip
#
# TARGET_DIRS are directories that would not exist on the system except
# for the presence of OpenSceneGraph. 'make instclean' removes these
# directories
#
TARGET_DIRS = \
$(MINGW_HOME)/include/osg \
$(MINGW_HOME)/include/osgDB \
$(MINGW_HOME)/include/osgGLUT \
$(MINGW_HOME)/include/osgUtil \
$(MINGW_HOME)/include/osgText \
$(MINGW_HOME)/share/OpenSceneGraph\
$(MINGW_HOME)/share/OpenSceneGraph/data\
$(MINGW_HOME)/share/OpenSceneGraph/data/Images\
$(MINGW_HOME)/share/OpenSceneGraph/data/Test\
$(MINGW_HOME)/lib/osgPlugins\
TARGET_BIN = $(MINGW_HOME)/bin
TARGET_LIB = $(MINGW_HOME)/lib
TARGET_INCLUDE = $(MINGW_HOME)/include
TARGET_DATA = $(MINGW_HOME)/share/OpenSceneGraph/data
#
# This definitions are necessary for IRIX. The following statement
# does not work for smake using a sh:
#
# for variable in $(LIST); do ...; done
#
# .. if $(LIST) is a NULL variable. So we have to define 0 length
# strings and check for them inside the for loop
#
TARGET_LIB_FILES = ""
TARGET_BIN_FILES = ""
TARGET_INCLUDE_FILES = ""
TARGET_DATA_FILES = ""
TARGET_LOADER_FILES = ""
# set to your wxWindows TOP directory
WXDIR = d:/src/wxMSW
WX_CFLAGS = -DWXUSINGDLL -D_X86_=1 -DWIN32 -D_WIN32 -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -I$(WXDIR)/include -I$(WXDIR)/contrib/include -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff -I$(WXDIR)/include/wx/msw/gnuwin32 -DSTRICT -D__WXMSW__ -D__WINDOWS__ -D__WXDEBUG__ -Wall -mwin32 -fno-pcc-struct-return -O2 -fno-exceptions -DWIN32_LEAN_AND_MEAN
# -fno-rtti
WX_CPPFLAGS = -DWXUSINGDLL -D_X86_=1 -DWIN32 -D_WIN32 -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -I$(WXDIR)/include -I$(WXDIR)/contrib/include -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff -I$(WXDIR)/include/wx/msw/gnuwin32 -DSTRICT -D__WXMSW__ -D__WINDOWS__ -D__WXDEBUG__ -Wall -mwin32 -fno-pcc-struct-return -O2 -fno-exceptions -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1
# -fno-rtti
WX_LDFLAGS = -L$(WXDIR)/lib -L$(WXDIR)/contrib/lib
WX_LD_LIBS =
WX_LIBS = $(WXDIR)/lib/libwx23_1.a -lpng -ljpeg -ltiff -lz -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid

View File

@@ -5,12 +5,18 @@ $(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 $@
$(C++) $(LDFLAGS) -shared \
-Wl,--export-all-symbols \
-Wl,--output-def,lib$(TARGET_BASENAME).def \
-Wl,--out-implib,$(OSGHOME)/lib/lib$(TARGET_BASENAME).a \
-o $@ $(OBJS) $(LIBS)
$(LIB) : $(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 $@
$(C++) $(LDFLAGS) -shared \
-Wl,--export-all-symbols \
-Wl,--output-def,lib$(TARGET_BASENAME).def \
-Wl,--out-implib,$(OSGHOME)/lib/lib$(TARGET_BASENAME).a \
-o $@ $(OBJS) $(LIBS)
clean :
rm -f $(OBJS) core $(TARGET) $(MAKEDEPEND)

72
Make/makerules.mingw Normal file
View File

@@ -0,0 +1,72 @@
all : $(MAKEDEPEND) $(TARGET) $(LOADABLE) $(LIB)
$(TARGET) : $(OBJS)
$(C++) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
$(LOADABLE) : $(OBJS)
$(C++) $(LDFLAGS) -shared \
-Wl,--export-all-symbols \
-Wl,--output-def,lib$(TARGET_BASENAME).def \
-Wl,--out-implib,$(OSGHOME)/lib/lib$(TARGET_BASENAME).a \
-o $@ $(OBJS) $(LIBS)
$(LIB) : $(OBJS)
$(C++) $(LDFLAGS) -shared \
-Wl,--export-all-symbols \
-Wl,--output-def,lib$(TARGET_BASENAME).def \
-Wl,--out-implib,$(OSGHOME)/lib/lib$(TARGET_BASENAME).a \
-o $@ $(OBJS) $(LIBS)
clean :
rm -f $(OBJS) core $(TARGET) $(MAKEDEPEND)
touch $(MAKEDEPEND)
clobber : clean
rm -f $(TARGET) a.out $(LIB)
to_unix :
for f in *.cpp ; do to_unix $$f $$f; done
for f in *.h ; do to_unix $$f $$f; done
beautify :
for f in *.cpp ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
for f in *.h ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
# force it
depend :
$(C++) $(C++FLAGS) -M $(C++FILES) $(CFILES) > $(MAKEDEPEND)
$(MAKEDEPEND) : $(C++FILES) $(CFILES)
$(C++) $(C++FLAGS) -M $(C++FILES) $(CFILES) > $(MAKEDEPEND)
%.o : %.cpp
$(C++) $(C++FLAGS) -c $*.cpp -o $*.o
%.o : %.c
$(CC) $(C++FLAGS) -c $*.c -o $*.o
docs:
[ "$(TARGET_BASENAME)" != "" ] && \
mkdir -p ../../doc/doc++/$(TARGET_BASENAME) && \
doc++ -d ../../doc/doc++/$(TARGET_BASENAME) -H -A ../../include/$(TARGET_BASENAME)/* && \
echo $(TARGET_BASENAME) HTML documentation created in ../../doc/doc++/$(TARGET_BASENAME)
install : home
@ make __install
instlinks : home
@ make __instlinks
instclean : home
@ make __instclean
home :
@ [ -n "$(OSGHOME)" ] || (echo ; echo "-------------> Please define OSGHOME"; echo)
@ [ -n "$(OSGHOME)" ] && echo > /dev/null;
sinclude $(INSTRULES)
include $(MAKEDEPEND)