# Mingw32 CPD makefile for crosscompiling for NT under Unix # # tested with Mingw32 CPD on Linux # Uncomment this for compile info for gdb and display more compiler warnings DEBUG = -g -pedantic # Uncomment this for strip all simbols from binaries to reduce file sizes #STRIP = -s PERL=0 PERL_DIR= ifeq (~$(PERL)~, ~1~) PERLFLAGS =`$(PERL_DIR)perl -MExtUtils::Embed -e ccopts` PERLDEFS =-DDO_PERL PERLLIBS =`$(PERL_DIR)perl -MExtUtils::Embed -e ldopts` PERLOBJ = perl$(OBJ) endif SRC_DIR=../src/ ## programs ## #use this line if you are using MINGW32 on a Windows box CC = gcc AR = ar RANLIB = ranlib #use this line if you are using MINGW32 CPD on a Unix box as cross compiler #CC = i386-mingw32-gcc #AR = i386-mingw32-ar #RANLIB = i386-mingw32-ranlib RM = rm ## file suffixes ("extensions") ## C = .c OBJ = .o LIB = .a EXE = .exe DLL = .dll # Prefix to construct static library name LIBPREFIX=lib # Prefix to construct dll name DLLPREFIX= # Suffix to construct library name LIBSUFFIX=cyg # Suffix to construct dll name DLLSUFFIX= ## program options ## # compiler defines override CDEFS += $(PERLDEFS) # common compiler options override CFLAGS += -I../h -I../.. -Wall -mno-cygwin -O3 # common linker options override LFLAGS += -mno-cygwin # options for compile only (link is off) OBJOPT = -c # options for build static library override LIBOPT += -static # options for build dll override DLLOPT += -shared # option for specify output file name NAMEOPT = -o # options for $(AR) program override AROPTS += rs # husky libraries: # static versions of husky libraries to build this module STATICLIBS +=../../fidoconf/$(LIBPREFIX)fidoconfig$(LIBSUFFIX)$(LIB) STATICLIBS +=../../smapi/$(LIBPREFIX)smapi$(LIBSUFFIX)$(LIB) # DLL versions of husky libraries need to build this module DLL_LIBS +=../../fidoconf/$(DLLPREFIX)fidoconf$(DLLSUFFIX)$(DLL) DLL_LIBS +=../../smapi/$(DLLPREFIX)smapi$(DLLSUFFIX)$(DLL) # libraries need to build binary file LIBS ?= ## other ## CYGWIN_VERSION = $(shell uname -r) ifeq ( , $(findstring "1.3.9", $(CYGWIN_VERSION)) ) ifeq ( , $(findstring "1.3.10", $(CYGWIN_VERSION)) ) ifeq ( , $(findstring "1.3.11", $(CYGWIN_VERSION)) ) # new cygwin require library mingwex for build with '-mno-cygwin' option LIBS += -lmingwex endif endif endif override CFLAGS += $(DEBUG) override LFLAGS += $(DEBUG) ########### EXENAMEFLAG = $(NAMEOPT) PROGRAMS = commonprogs .PHONY: distclean clean all static dll programs default dllprograms default: @echo Run 'make dll' to build dll version of programs @echo Run 'make static' to build static version of programs # @echo Run 'make all' to build all above %$(OBJ): $(SRC_DIR)%.c $(CC) $(CFLAGS) $(CDEFS) $(OBJOPT) $^ $(PERLOBJ): $(SRC_DIR)perl.c $(CC) $(CFLAGS) $(PERLFLAGS) $(OBJOPT) $(CDEFS) $^ include makefile.inc all: default static: $(MAKE) -f makefile.cyg $(PROGRAMS) LIBS="$< $(STATICLIBS)" dll: $(MAKE) -f makefile.cyg $(PROGRAMS) LIBS="$< $(DLL_LIBS)" clean: commonclean distclean: commondistclean