# 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).
#
# An alternative to editing this file is to create a shell script
# to export specific variables, and call make with the -e switch
# to override makefile variables. See wx/install/install.txt.
# And you can override specific variables on the make command line, e.g.
#
# make -f makefile.unix WXDEBUG=''
#
# You may prefer to use the GNU configure script than raw makefiles -
# see contrib/wxshlib.
#

########################## Compiler ##################################

# C++ compiler
# For AIX/CSet++: use CC = xlC
# For IRIX: use CC = CC
# CC = gcc-2.6.2
CC = gcc

# C compiler for pure C programs
# Typical: CC=g++ , CCC=gcc
#          CC=cl386 /Tp, CCC=cl386
#
# (Used only for XView, file sb_scrol.c)
#
CCC = $(CC)

# Compiler used for LEX generated C
# AIX: use $(CCC)
CCLEX=$(CC)

MAKE=make

# LEX
LEX=flex.exe -t -L

# YACC. byacc or bison
# YACC=byacc.exe
YACC=bison.exe

# Resource compiler
RESCOMP=windres.exe

RESFLAGS=--include-dir $(WXDIR)/include --define __WIN32__ --define __WIN95__ --define __GNUWIN32__

########################## Compiler flags #############################

# Miscellaneous compiler options
# Solaris/GCC: -DSVR4
# Solaris/GCC, dynamic library: -DSVR4 -fPIC
# FreeBDS 2.0: does not need -D_BSD - always defined
# AIX/CSet++: -+ -qsrcmsg -DSYSV
# AIX/GCC: -DSYSV -DAIX
# Data General: -DDG
# HP: -D_HPUX_SOURCE +a1 -Aa +d -z
# IRIX: -mips2
OPTIONS= # -D__MINGW32__ # -D__EGCS__

# Debugging information
# AIX: comment out.
# IRIX: -g3
DEBUGFLAGS = -ggdb -D__WXDEBUG__

# Debug/trace mode. 1 or more for debugging.
WXDEBUG=0

WIN95=1

ifeq ($(WIN95),0)
# With 3.50, Win95 will use your existing icons to show smaller ones.
# With 4.0, you'll have to follow Win95 procedures for icons or you'll get the
# default Windows icon.
APPVER=3.50
WINVERSION=-DWINVER=0x0350 -D__GNUWIN32__ -D__WIN32__ # Generic WIN32
else
APPVER=3.50 # 4.0
# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0).
WINVERSION=-DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__
endif

CPU=i386

# Suffixes
OBJSUFF=o
SRCSUFF=cpp
LIBPREFIX=lib
LIBSUFF=a
EXESUFF=.exe
RESSUFF=res
RSCSUFF=rsc

# Warnings
# AIX: comment out
# IRIX: -w -wlint,-fpiv
# These are for the GNU compiler. We now get the compiler to check for as
# many things as we can, to catch portability problems sooner.
WARN = -Wall

# -pedantic -Wpointer-arith -Wtraditional -Wcast-align \
# -Wenum-clash -Wnested-externs -Woverloaded-virtual \
# -Winline -Wconversion

# not good with too few 'const' decls in wxWindows
# -Wcast-qual -Wwrite-strings

# too hard (problems with system header files)
# -Wstrict-prototypes -Wmissing-prototypes
# -Wredudant-decs

# Which GUI, -Dwx_xview or -Dwx_motif (don't change this)
GUI = -D__WXMSW__

# Optimization
# OPT = -O
# FreeBSD 2.0 with i486: OPT = -O2 -m486
# IRIX: -O2 #-O0 : no, -O1: quick, -O2: global -O3: full(register)
# Linux: -m486 # -O2 for optimization
OPT =

# Options for ar archiver
# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4).
AROPTIONS = ruv
RANLIB = ranlib
# RANLIB = echo # Uncomment this line for IRIX and Solaris

# Compiler libraries: defaults to GCC libraries
# Solaris: -lgen -ldl -lsocket -lnsl
#   and/or possibly -lucb, whatever that is... (-lucb CAUSES MOTIF FILE SELECTION PROBLEMS)
#   or possibly -lgen -lsocket -L/usr/ccs/lib linbnsl.a 
# GCC > 2.7.1 on Solaris: -lstdc++ -lc -lgen -ldl -lsocket -lnsl -lucb 
# SGI:     -lPW
# FreeBSD 2.0: -lg++ -lcompat
# FreeBSD 1.x: -lcompat doesn`t need, only -lg++ needed
# AIX: -lCns -lbsd
# G++ 2.7.0 requires -liostream too.
# IRIX: -lPW
#COMPLIBS=-lg++
#for win95
#COMPLIBS=-lgcc

# Compiler or system-specific include paths
# E.g. some SPARCStations need
# -I/usr/ucbinclude/sys
#added for win95
COMPPATHS=

# HP-specific compiler library: an AIAI convenience
HPCOMPLIBS=

# LDLIBS for specific GUIs

# The following for LINUX and Motif 2.0:
#MOTIFLDLIBS = -lwx_motif $(COMPLIBS) -lXm -lXmu -lXpm -lXt -lXext -lX11 -lm

#BASICMOTIFLDLIBS = -lwx_motif /aiai/packages/motif1.2.1/motif/sun4/lib/libXm.a /aiai/packages/motif1.2.1/motif/sun4/lib/libXmu.a /aiai/packages/motif1.2.1/motif/sun4/lib/libXt.a /aiai/packages/motif1.2.1/motif/sun4/lib/libX11.a -lm
# Apparently libg++ (in COMPLIBS) should go before libXm because of a clash of
# function name: re_create.
#BASICMOTIFLDLIBS = -lwx_motif $(COMPLIBS) -lXm -lXmu -lXt -lX11 -lm

#MOTIFLDLIBS = $(BASICMOTIFLDLIBS) $(COMPLIBS)

#XVIEWLDLIBS = -lwx_ol -lxview -lolgx -lX11 -lm $(COMPLIBS)
#HPLDLIBS=-lwx_hp -lXm -lXmu -lXt -lX11 -lm
#CYGNUSLDLIBS=
# Default LDLIBS for XView (don't change this)
#LDLIBS = $(CYGNUSLDLIBS)

# _ol or _motif (don't need to change, the makefiles will take
# care of it if you use motif/hp/xview targets)
#GUISUFFIX=_ol

########################## Directories ###############################


WINLIBS=-lstdc++ -lgcc \
	-lwinspool -lwinmm -lshell32 -loldnames \
	-lcomctl32 -lctl3d32 -lodbc32

# Shouldn't need to change these...
WXSRC=$(WXDIR)/src/msw
WXINC=$(WXDIR)/include
WXBASESRC=$(WXDIR)/src/common
WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx.$(LIBSUFF)
INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/zlib $(EXTRAINC)$(COMPPATHS)
RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED -I$(WXWIN)\include"

#LIBS = -lctl3d32 $(WXLIB) $(WINLIBS) $(COMPLIBS)
LIBS = $(WXLIB) $(WINLIBS) $(COMPLIBS)

WINFLAGS=-D_X86_=1 -DWIN32 -D_WIN32 $(WINVERSION)

#for windows 95
XINCLUDE=$(WINFLAGS)
XLIB=$(LIBS)
LDLIBS = $(LIBS)

# Directory for object files (don't change)
OBJDIR = objects$(GUISUFFIX)

# You shouldn't need to change these...
CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) -DWXDEBUG='$(WXDEBUG)' $(WARN) $(OPT)
CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) -DWXDEBUG='$(WXDEBUG)' $(WARN) $(OPT)
LDFLAGS =  -Wl,--subsystem,windows -mwindows -L$(WXDIR)/lib

# Extra patch link for XView
#XVIEW_LINK = $(WXDIR)/src/x/objects_ol/sb_scrol.o # $(WXDIR)/src/x/objects_ol/xvwinlp.o

.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .c

# Set these in a batch file instead e.g. install/cygnus.bat
#	RCINCLUDE="$(WXDIR)/include/msw;$(WXDIR)/contrib/fafa;$(WXDIR)/contrib/itsybits"; \
#	CPLUS_INCLUDE_PATH=/usr/H-i386-cygwin32/i386-cygwin32/include:/usr/H-i386-cygwin32/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-961023/include:$(WXDIR)/include/common:$(WXDIR)/include/msw:$(WXDIR)/contrib/fafa:$(WXDIR)/contrib/itsybits; \
#	export CPLUS_INCLUDE_PATH RCINCLUDE;  \

.rc.$(RESSUFF):  $< $(WXDIR)/include/msw/wx.rc
	$(RC) $(RESFLAGS1) $< $(RESFLAGS2) $*.$(RESSUFF) $(RCLFLAGS)

.$(RESSUFF).$(RSCSUFF): $<
	$(CVTRES) $< $*.$(RSCSUFF)

.$(SRCSUFF).$(OBJSUFF):
	$(CC) -c $(CPPFLAGS) -o $@ $*.$(SRCSUFF)

.c.o:
	$(CC) -c $(CPPFLAGS) -o $@ $*.c