| # |
| # OS/2 GNU Makefile for building libiconv with GNU Make and GNU C compiler |
| # |
| # This makefile will build iconv.dll, iconv.a (the import library for ICONV.DLL) |
| # and iconv_s.a (static library). |
| # |
| # You will need the Unicode API add-on for EMX, which is included with latest |
| # distributions of gcc for OS/2 (gcc 3.0 and later). |
| # |
| |
| # Use CMD.EXE as shell since its way faster |
| SHELL = $(COMSPEC) |
| |
| # Pack the DLL and executables with lxlite |
| LXLITE = 1 |
| |
| # Tools |
| CC = gcc -c |
| CFLAGS = -s -O2 -Wall -Zmt $(INCLUDE) $(DEFS) |
| INCLUDE = -I. |
| |
| LD = gcc |
| LDFLAGS.SHARED = -s -Zmt -Zcrtdll -Zdll |
| LIBS = -lgcc |
| |
| AR = ar |
| ARFLAGS = crs |
| |
| .SUFFIXES: |
| .SUFFIXES: .o .a .def .dll |
| |
| .PHONY: all clean |
| |
| ICONV.VERSION = 0.0.1 |
| ICONV.OBJECTS = iconv.o |
| |
| # How to compile a .c file |
| $(OUT)%.o: %.c |
| $(CC) $(CFLAGS) -o $@ $< |
| |
| # How to build an import library from a .DEF file |
| $(OUT)%.a: $(OUT)%.def |
| emximp -o $@ $< |
| |
| all: iconv.dll iconv.a iconv_s.a |
| |
| clean: |
| rm -rf *.o iconv.dll iconv*.a iconv.def |
| |
| iconv_s.a: $(ICONV.OBJECTS) |
| $(AR) $(ARFLAGS) $@ $^ |
| |
| $(OUT)iconv.def: $(ICONV.OBJECTS) |
| @echo LIBRARY ICONV INITINSTANCE TERMINSTANCE>$@ |
| @echo DESCRIPTION "iconv API library version $(ICONV.VERSION)">>$@ |
| @echo DATA MULTIPLE NONSHARED>>$@ |
| @echo EXPORTS>>$@ |
| emxexp $^ >>$@ |
| |
| $(OUT)iconv.dll: $(ICONV.OBJECTS) $(OUT)iconv.def |
| $(LD) $(LDFLAGS.SHARED) -o $@ $^ $(LIBS) |
| ifeq ($(LXLITE),1) |
| lxlite $@ |
| endif |