1# You must have mingw installed.
2
3BUILD=build/
4SRCDIR=$(BUILD)/source
5LIBDIR=$(BUILD)/lib
6OBJS=src/libircclient.obj
7
8all: prep static dynamic package-win32 package-linux
9
10prep:
11	mkdir -p $(LIBDIR)
12
13$(OBJS) : src/colors.c  src/dcc.c  src/errors.c  src/libircclient.c  src/portable.c  src/sockets.c  src/utils.c Makefile.mingw
14
15src/libircclient.obj: src/libircclient.c
16	i586-mingw32msvc-gcc -Iinclude -O2 -s -Isrc -DWIN32 -c -o src/libircclient.obj src/libircclient.c
17
18static: $(OBJS)
19	i586-mingw32msvc-ar cr $(LIBDIR)/libircclient-static.lib $(OBJS)
20	i586-mingw32msvc-ranlib $(LIBDIR)/libircclient-static.lib
21
22dynamic: $(OBJS)
23	i586-mingw32msvc-gcc -s -shared $(OBJS) src/libircclient.def -o $(LIBDIR)/libircclient.dll -Wl,-out-implib,$(LIBDIR)/libircclient.lib -lkernel32 -lwsock32
24
25docs:
26	doxygen Doxyfile
27
28package-win32:
29	mkdir -p $(BUILD)/doc
30	mkdir -p $(BUILD)/include
31	mkdir -p $(BUILD)/examples
32	cp include/libircclient.h include/libirc_errors.h include/libirc_events.h $(BUILD)/include/
33	cp include/libircclient.h include/libirc_errors.h include/libirc_events.h $(BUILD)/include/
34	cp examples/*.cpp examples/*.c $(BUILD)/examples/
35	cp src/win32/spammer.dsp $(BUILD)/examples/
36	cp doc/html/* $(BUILD)/doc/
37	rm -f libircclient-win32.zip
38	(cd $(BUILD) && zip -r ../libircclient-win32.zip .)
39
40package-linux:
41	mkdir -p $(SRCDIR)
42	rm -rf $(SRCDIR)/libircclient
43	svn export . $(SRCDIR)/libircclient
44	(cd $(SRCDIR) && tar zcf ../../libircclient.tar.gz libircclient)
45