CC ?= gcc AR ?= ar RANLIB ?= ranlib DLLWRAP ?= dllwrap DLLTOOL ?= dlltool STRIP ?= strip # comma separated list (e.g. "iconv.dll,libiconv.dll") DEFAULT_LIBICONV_DLL ?= \"\" CFLAGS += -pedantic -Wall CFLAGS += -DUSE_LIBICONV_DLL CFLAGS += -DDEFAULT_LIBICONV_DLL=$(DEFAULT_LIBICONV_DLL) all: iconv.dll libiconv.a win_iconv.exe dist: test win_iconv.zip iconv.dll: win_iconv.c $(CC) $(CFLAGS) -c win_iconv.c -DMAKE_DLL $(DLLWRAP) --dllname iconv.dll --def iconv.def win_iconv.o $(SPECS_FLAGS) $(STRIP) iconv.dll libiconv.a: win_iconv.c $(CC) $(CFLAGS) -c win_iconv.c $(AR) rcs libiconv.a win_iconv.o $(RANLIB) libiconv.a win_iconv.exe: win_iconv.c $(CC) $(CFLAGS) -s -o win_iconv.exe win_iconv.c -DMAKE_EXE libmlang.a: mlang.def $(DLLTOOL) --kill-at --input-def mlang.def --output-lib libmlang.a test: $(CC) $(CFLAGS) -s -o win_iconv_test.exe win_iconv_test.c ./win_iconv_test.exe win_iconv.zip: msvcrt msvcr70 msvcr71 rm -rf win_iconv svn export . win_iconv cp msvcrt/iconv.dll msvcrt/win_iconv.exe win_iconv/ mkdir win_iconv/msvcr70 cp msvcr70/iconv.dll win_iconv/msvcr70/ mkdir win_iconv/msvcr71 cp msvcr71/iconv.dll win_iconv/msvcr71/ zip -r win_iconv.zip win_iconv msvcrt: svn export . msvcrt; \ cd msvcrt; \ $(MAKE); msvcr70: svn export . msvcr70; \ cd msvcr70; \ gcc -dumpspecs | sed s/-lmsvcrt/-lmsvcr70/ > specs; \ $(MAKE) "SPECS_FLAGS=-specs=$$PWD/specs"; msvcr71: svn export . msvcr71; \ cd msvcr71; \ gcc -dumpspecs | sed s/-lmsvcrt/-lmsvcr71/ > specs; \ $(MAKE) "SPECS_FLAGS=-specs=$$PWD/specs"; clean: rm -f win_iconv.exe rm -f win_iconv.o rm -f iconv.dll* rm -f libiconv.a rm -f libiconv.dll rm -f win_iconv_test.exe rm -f libmlang.a rm -rf win_iconv rm -rf win_iconv.zip rm -rf msvcrt rm -rf msvcr70 rm -rf msvcr71