|
Packit |
2bcd41 |
# Makefile for win-iconv
|
|
Packit |
2bcd41 |
#
|
|
Packit |
2bcd41 |
# Variables that can be overriden:
|
|
Packit |
2bcd41 |
#
|
|
Packit |
2bcd41 |
# CC, AR, RANLIB, DLLTOOL
|
|
Packit |
2bcd41 |
# MKDIR_P, INSTALL, RM
|
|
Packit |
2bcd41 |
# prefix, BINARY_PATH, INCLUDE_PATH, LIBRARY_PATH
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
CC ?= gcc
|
|
Packit |
2bcd41 |
AR ?= ar
|
|
Packit |
2bcd41 |
RANLIB ?= ranlib
|
|
Packit |
2bcd41 |
DLLTOOL ?= dlltool
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
MKDIR_P = mkdir -p
|
|
Packit |
2bcd41 |
INSTALL = install -c
|
|
Packit |
2bcd41 |
RM = rm -f
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
# comma separated list (e.g. "iconv.dll,libiconv.dll")
|
|
Packit |
2bcd41 |
DEFAULT_LIBICONV_DLL ?= \"\"
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
CFLAGS += -pedantic -Wall
|
|
Packit |
2bcd41 |
CFLAGS += -DUSE_LIBICONV_DLL
|
|
Packit |
2bcd41 |
CFLAGS += -DDEFAULT_LIBICONV_DLL=$(DEFAULT_LIBICONV_DLL)
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
prefix ?= /usr/local
|
|
Packit |
2bcd41 |
BINARY_PATH = $(prefix)/bin
|
|
Packit |
2bcd41 |
INCLUDE_PATH = $(prefix)/include
|
|
Packit |
2bcd41 |
LIBRARY_PATH = $(prefix)/lib
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
all: iconv.dll libiconv.a win_iconv.exe
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
dist: test win_iconv.zip
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
iconv.dll: win_iconv.c
|
|
Packit |
2bcd41 |
$(CC) $(CFLAGS) -c win_iconv.c -DMAKE_DLL
|
|
Packit |
2bcd41 |
$(CC) -shared -o iconv.dll -Wl,-s -Wl,--out-implib=libiconv.dll.a -Wl,--export-all-symbols win_iconv.o $(SPECS_FLAGS)
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
libiconv.a: win_iconv.c
|
|
Packit |
2bcd41 |
$(CC) $(CFLAGS) -c win_iconv.c
|
|
Packit |
2bcd41 |
$(AR) rcs libiconv.a win_iconv.o
|
|
Packit |
2bcd41 |
$(RANLIB) libiconv.a
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
win_iconv.exe: win_iconv.c
|
|
Packit |
2bcd41 |
$(CC) $(CFLAGS) -s -o win_iconv.exe win_iconv.c -DMAKE_EXE
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
libmlang.a: mlang.def
|
|
Packit |
2bcd41 |
$(DLLTOOL) --kill-at --input-def mlang.def --output-lib libmlang.a
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
test:
|
|
Packit |
2bcd41 |
$(CC) $(CFLAGS) -s -o win_iconv_test.exe win_iconv_test.c
|
|
Packit |
2bcd41 |
./win_iconv_test.exe
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
win_iconv.zip: msvcrt msvcr70 msvcr71
|
|
Packit |
2bcd41 |
rm -rf win_iconv
|
|
Packit |
2bcd41 |
svn export . win_iconv
|
|
Packit |
2bcd41 |
cp msvcrt/iconv.dll msvcrt/win_iconv.exe win_iconv/
|
|
Packit |
2bcd41 |
mkdir win_iconv/msvcr70
|
|
Packit |
2bcd41 |
cp msvcr70/iconv.dll win_iconv/msvcr70/
|
|
Packit |
2bcd41 |
mkdir win_iconv/msvcr71
|
|
Packit |
2bcd41 |
cp msvcr71/iconv.dll win_iconv/msvcr71/
|
|
Packit |
2bcd41 |
zip -r win_iconv.zip win_iconv
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
msvcrt:
|
|
Packit |
2bcd41 |
svn export . msvcrt; \
|
|
Packit |
2bcd41 |
cd msvcrt; \
|
|
Packit |
2bcd41 |
$(MAKE);
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
msvcr70:
|
|
Packit |
2bcd41 |
svn export . msvcr70; \
|
|
Packit |
2bcd41 |
cd msvcr70; \
|
|
Packit |
2bcd41 |
gcc -dumpspecs | sed s/-lmsvcrt/-lmsvcr70/ > specs; \
|
|
Packit |
2bcd41 |
$(MAKE) "SPECS_FLAGS=-specs=$$PWD/specs";
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
msvcr71:
|
|
Packit |
2bcd41 |
svn export . msvcr71; \
|
|
Packit |
2bcd41 |
cd msvcr71; \
|
|
Packit |
2bcd41 |
gcc -dumpspecs | sed s/-lmsvcrt/-lmsvcr71/ > specs; \
|
|
Packit |
2bcd41 |
$(MAKE) "SPECS_FLAGS=-specs=$$PWD/specs";
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
install: iconv.dll libiconv.a win_iconv.exe
|
|
Packit |
2bcd41 |
-@$(MKDIR_P) '$(DESTDIR)$(BINARY_PATH)'
|
|
Packit |
2bcd41 |
-@$(MKDIR_P) '$(DESTDIR)$(INCLUDE_PATH)'
|
|
Packit |
2bcd41 |
-@$(MKDIR_P) '$(DESTDIR)$(LIBRARY_PATH)'
|
|
Packit |
2bcd41 |
-$(INSTALL) iconv.dll '$(DESTDIR)$(BINARY_PATH)'
|
|
Packit |
2bcd41 |
-$(INSTALL) win_iconv.exe '$(DESTDIR)$(BINARY_PATH)'
|
|
Packit |
2bcd41 |
-$(INSTALL) iconv.h '$(DESTDIR)$(INCLUDE_PATH)'
|
|
Packit |
2bcd41 |
-$(INSTALL) libiconv.dll.a '$(DESTDIR)$(LIBRARY_PATH)'
|
|
Packit |
2bcd41 |
-$(INSTALL) libiconv.a '$(DESTDIR)$(LIBRARY_PATH)'
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
uninstall:
|
|
Packit |
2bcd41 |
-$(RM) '$(DESTDIR)$(LIBRARY_PATH)'/libiconv.a
|
|
Packit |
2bcd41 |
-$(RM) '$(DESTDIR)$(LIBRARY_PATH)'/libiconv.dll.a
|
|
Packit |
2bcd41 |
-$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/iconv.h
|
|
Packit |
2bcd41 |
-$(RM) '$(DESTDIR)$(BINARY_PATH)'/win_iconv.exe
|
|
Packit |
2bcd41 |
-$(RM) '$(DESTDIR)$(BINARY_PATH)'/iconv.dll
|
|
Packit |
2bcd41 |
|
|
Packit |
2bcd41 |
clean:
|
|
Packit |
2bcd41 |
rm -f win_iconv.exe
|
|
Packit |
2bcd41 |
rm -f win_iconv.o
|
|
Packit |
2bcd41 |
rm -f iconv.dll*
|
|
Packit |
2bcd41 |
rm -f libiconv.a
|
|
Packit |
2bcd41 |
rm -f libiconv.dll
|
|
Packit |
2bcd41 |
rm -f win_iconv_test.exe
|
|
Packit |
2bcd41 |
rm -f libmlang.a
|
|
Packit |
2bcd41 |
rm -rf win_iconv
|
|
Packit |
2bcd41 |
rm -rf win_iconv.zip
|
|
Packit |
2bcd41 |
rm -rf msvcrt
|
|
Packit |
2bcd41 |
rm -rf msvcr70
|
|
Packit |
2bcd41 |
rm -rf msvcr71
|
|
Packit |
2bcd41 |
|