Fixes to allow DLL compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c9c436eb70
commit
75515c52a4
@ -1,9 +1,12 @@
|
||||
#
|
||||
# makeg95.env
|
||||
# Common makefile settings for wxWindows programs
|
||||
# This file is included by all the other makefiles, thus changes
|
||||
# made here take effect everywhere (except where overriden).
|
||||
# The settings are for GnuWin32-derived compilers, i.e. Cygwin and Mingw32.
|
||||
#
|
||||
# CVS_ID: $Id$
|
||||
#
|
||||
|
||||
# If using Cygwin, set this to 0.
|
||||
# If using Mingw32, set this to 1.
|
||||
@ -12,11 +15,20 @@ MINGW32=1
|
||||
# Set to the version you have
|
||||
MINGW32VERSION=2.95
|
||||
|
||||
# If building DLL, the version
|
||||
WXVERSION=21_11
|
||||
|
||||
# Say yes if you have a "modern" linker that supports --shared option.
|
||||
# Note that you're probably going to wait forever for dlltool/gcc/etc
|
||||
# to build the DLL, so you should really use a newer linker that
|
||||
# supports --shared.
|
||||
LD_SUPPORTS_SHARED=yes
|
||||
|
||||
# Set to the appropriate remove command
|
||||
RM=rm -f
|
||||
|
||||
# Set to the appropriate copy command
|
||||
COPY=copy
|
||||
# Set to the appropriate copy command and separator
|
||||
COPY=cp
|
||||
|
||||
########################## Compiler ##################################
|
||||
|
||||
@ -24,7 +36,7 @@ COPY=copy
|
||||
# Put a comment before --pipe for Cygwin, remove comment for Mingw32 2.95
|
||||
|
||||
ifeq ($(MINGW32),1)
|
||||
ifeq ($(MINGW32VERSION),2.95)
|
||||
ifneq "$(findstring 2.95, $(MINGW32VERSION))" ""
|
||||
CC = gcc --pipe -fvtable-thunks
|
||||
else
|
||||
CC = gcc
|
||||
@ -39,6 +51,8 @@ CCC = $(CC)
|
||||
# Compiler used for LEX generated C
|
||||
CCLEX=gcc
|
||||
|
||||
# GRG: This shouldn't be here! make is supposed to define the
|
||||
# MAKE variable itself.
|
||||
MAKE=make
|
||||
|
||||
# LEX
|
||||
@ -49,7 +63,7 @@ YACC=byacc
|
||||
#YACC=bison
|
||||
|
||||
# Settings for Cyginw/Mingw32
|
||||
RESCOMP=windres.exe
|
||||
RESCOMP=windres
|
||||
RCINPUTSWITCH=-i
|
||||
RCOUTPUTSWITCH=-o
|
||||
RCINCSWITCH=--include-dir
|
||||
@ -57,6 +71,10 @@ RCDEFSWITCH=--define
|
||||
|
||||
RESFLAGS=$(RCINCSWITCH) $(WXDIR)/include $(RCDEFSWITCH) __WIN32__ $(RCDEFSWITCH) __WIN95__ $(RCDEFSWITCH) __GNUWIN32__
|
||||
|
||||
# Needed to build a DLL if your linker does not support --shared option.
|
||||
AS = as
|
||||
DLLTOOL = dlltool
|
||||
|
||||
########################## Compiler flags #############################
|
||||
|
||||
# Miscellaneous compiler options
|
||||
@ -97,15 +115,16 @@ WARN = -Wall
|
||||
# Which GUI, -Dwx_xview or -Dwx_motif (don't change this)
|
||||
GUI = -D__WXMSW__ -D__WINDOWS__
|
||||
|
||||
# according to Guillermo Rodriguez Garcia <guille@iies.es> this flag is
|
||||
# needed to make the standard div() function work - otherwise it returns
|
||||
# absolutely incorrect results and completely breaks the wxImage class
|
||||
# (where it's used extensively)
|
||||
# GRG: at least it is needed in mingw32-gcc2.8.1
|
||||
# According to Guillermo Rodriguez Garcia <guille@iies.es>, the
|
||||
# -fno-pcc-struct-return option is needed to make the standard div()
|
||||
# function work - otherwise it returns absolutely incorrect results
|
||||
# which breaks the wxImage class. This is true at least for
|
||||
# mingw32-gcc2.8.1, don't know about others.
|
||||
OPT = -fno-pcc-struct-return -O2 -fno-rtti -fno-exceptions
|
||||
|
||||
# Options for ar archiver
|
||||
# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4).
|
||||
AR = ar
|
||||
AROPTIONS = ruv
|
||||
RANLIB = ranlib
|
||||
|
||||
@ -136,21 +155,25 @@ WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx.$(LIBSUFF)
|
||||
GNUWIN32EXTRA=-I$(WXDIR)/include/wx/msw/gnuwin32
|
||||
|
||||
ifeq ($(MINGW32),1)
|
||||
ifeq ($(MINGW32),2.95)
|
||||
ifneq "$(findstring 2.95, $(MINGW32VERSION))" ""
|
||||
GNUWIN32EXTRA=
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(MINGW32),1)
|
||||
INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/xpm $(EXTRAINC) $(COMPPATHS)
|
||||
INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/xpm -I$(WXDIR)/src/tiff $(EXTRAINC) $(COMPPATHS)
|
||||
else
|
||||
INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/xpm $(EXTRAINC) $(COMPPATHS) -I$(WXDIR)/include/wx/msw/gnuwin32
|
||||
INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/xpm -I$(WXDIR)/src/tiff $(EXTRAINC) $(COMPPATHS) -I$(WXDIR)/include/wx/msw/gnuwin32
|
||||
endif
|
||||
|
||||
RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED -I$(WXWIN)/include"
|
||||
|
||||
#LIBS = $(WXLIB) $(WXDIR)/lib/libzlib.a $(WXDIR)/lib/libpng.a $(WXDIR)/lib/libjpeg.a $(WINLIBS) $(COMPLIBS) $(EXTRALIBS)
|
||||
LIBS = $(WXLIB) -lpng -ljpeg -lzlib -lxpm $(WINLIBS) $(COMPLIBS) $(EXTRALIBS)
|
||||
ifdef WXUSINGDLL
|
||||
# png, jpeg, etc are exported from wx dll, so skip and save on link time.
|
||||
LIBS = $(WXLIB) $(WINLIBS) $(COMPLIBS) $(EXTRALIBS)
|
||||
else
|
||||
LIBS = $(WXLIB) -lpng -ljpeg -lzlib -lxpm -ltiff $(WINLIBS) $(COMPLIBS) $(EXTRALIBS)
|
||||
endif
|
||||
|
||||
WINFLAGS=-D_X86_=1 -DWIN32 -D_WIN32 $(WINVERSION)
|
||||
|
||||
@ -163,9 +186,20 @@ LDLIBS = $(LIBS)
|
||||
# OBJDIR = objects$(GUISUFFIX)
|
||||
OBJDIR = .
|
||||
|
||||
ifdef WXMAKINGDLL
|
||||
EXTRADLLFLAGS = -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1
|
||||
WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(WXVERSION).$(LIBSUFF)
|
||||
endif
|
||||
|
||||
ifdef WXUSINGDLL
|
||||
EXTRADLLFLAGS = -DWXUSINGDLL=1
|
||||
WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(WXVERSION).$(LIBSUFF)
|
||||
endif
|
||||
|
||||
|
||||
# You shouldn't need to change these...
|
||||
CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACPPFLAGS)
|
||||
CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACFLAGS)
|
||||
CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACPPFLAGS) $(EXTRADLLFLAGS)
|
||||
CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACFLAGS) -DWIN32_LEAN_AND_MEAN
|
||||
WINDOWSLDFLAGS=-Wl,--subsystem,windows -mwindows
|
||||
LDFLAGS = $(WINDOWSLDFLAGS) -L$(WXDIR)/lib $(EXTRALDFLAGS)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user