summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile61
1 files changed, 61 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..f22d82d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,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)
+