summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: f22d82d9aecbc42c7fa690276bdddff2688e093d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
NAME=		uiconv
VERSION=	0.2.3

LIB=		lib
INCLUDE=	include
PREFIX= 	/usr/local
DESTDIR=

CFLAGS=		-Wall -Werror -Os 
CFLAGS+= 	-std=gnu99 -fPIC

TARGETS=	libiconv.a

DISTFILES=	Makefile README TODO iconv.c iconv.h test.c

all: static

static: libiconv.a

shared: libiconv.so

libiconv.a: iconv.o
	$(AR) -cr $@ $<

libiconv.so.0: iconv.o
	$(CC) $(LDFLAGS) -o $@ -shared $<

libiconv.so: libiconv.so.0
	ln -sf $< $@

%.o: %.c
	$(CC) $(CFLAGS) -c -I. $<

clean:
	rm -f *.a *.so *.so.0 *.o

test-gnu: test.c libiconv.a
	$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $<

test-uiconv: test.c libiconv.a
	$(CC) -I. -L. -o $@ $(CFLAGS) $(LDFLAGS) $<

test: test-gnu test-uiconv
	./test-uiconv ABC `echo -e "a\xc3\xb8"` `echo -e "a\xf8"`

P=$(NAME)-$(VERSION)
dist:	$(P).tar.gz 

$(P).tar.gz: $(DISTFILES)
	rm -rf $(P)
	mkdir $(P)
	cp $(DISTFILES) $(P)/
	tar -zcf $@ $(P)
	rm -rf $(P)
	
install:
	mkdir -p $(DESTDIR)$(PREFIX)/$(LIB)
	mkdir -p $(DESTDIR)$(PREFIX)/$(INCLUDE)
	cp libiconv.a $(DESTDIR)$(PREFIX)/$(LIB)
	cp iconv.h $(DESTDIR)$(PREFIX)/$(INCLUDE)