# $Id: makefile.gcc,v 1.8 2000-12-02 23:26:58 bird Exp $ # # Odin32 API # # Tools common library, GCC version. # # # # If OMF flag isn't set, set it to default value. # !ifndef OMF OMF=0 !endif # # Directories and common tools. # ODIN32_INCLUDE = ..\..\include ODIN32_BIN = ..\..\bin\$(OBJDIR) ODIN32_LIB = ..\..\lib ODIN32_TOOLS = ..\bin ODIN32_TCOMMON = ..\common !include $(ODIN32_INCLUDE)\odin32.tools # Definitions for odin32.post LOCALCLEAN = 1 CLEANEXTRAS = commongcc.* OLD_STYLE = 1 # # gcc defines # CC = gcc CXX = gcc LD = gcc !ifdef DEBUG OBJDIR = .\bin\debug !else OBJDIR = .\bin\release !endif !if $(OMF) == 0 # aout version O = o LIB = a AR = ar CFZOMF = !else # OMF version O = gobj LIB = lib AR = emxomfar CFZOMF = -Zomf !endif CDEFINES = -D__WIN32OS2__ -D__WINE__ CINCLUDES = -I$(ODIN32_INCLUDE)\Win -I$(ODIN32_INCLUDE) CPLUS_INCLUDE_PATH= $(CPLUS_INCLUDE_PATH);$(INCLUDE) # Note: Add -fhandle-exceptions if old gcc version (< 2.8.x?). !ifndef DEBUG CFLAGS = $(CFZOMF) -Wall -Zmap -Zmt -mprobe -Wall -s -O !else CFLAGS = $(CFZOMF) -Wall -Zmap -Zmt -mprobe -Wall -g !endif CXXFLAGS = $(CFLAGS) # # Interference rules # .c{$(OBJDIR)}.$(O): $(CC) -c $(CFLAGS) $(CDEFINES) $(CINCLUDES) $< -o $@ .cpp{$(OBJDIR)}.$(O): $(CXX) -c $(CXXFLAGS) $(CDEFINES) $(CINCLUDES) $< -o $@ # # Object files. # OBJS = \ $(OBJDIR)\kFilePe.$(O) \ $(OBJDIR)\kFileDef.$(O) \ $(OBJDIR)\kFileLx.$(O) \ $(OBJDIR)\kFileFormatBase.$(O)\ $(OBJDIR)\kFile.$(O) # # All rule. # all: $(OBJDIR) \ commongcc.$(LIB) $(OBJDIR)\commongcc.$(LIB): $(OBJS) $(RM) $@ $(AR) cr $@ $(OBJS) commongcc.$(LIB): $(OBJDIR)\commongcc.$(LIB) $(CP) $** $@ # # dependent rule. forward to main makefile. # dep: @$(MAKE) /nologo -f makefile NODEP=1 dep # Includes the common rules. !error "this makefile doesn't work right now." !include $(ODIN32_INCLUDE)/odin32.post