diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f98579a --- /dev/null +++ b/Makefile | |||
@@ -0,0 +1,77 @@ | |||
1 | # | ||
2 | # dlfcn-win32 Makefile | ||
3 | # | ||
4 | include config.mak | ||
5 | |||
6 | ifeq ($(BUILD_SHARED),yes) | ||
7 | TARGETS+=libdl.dll | ||
8 | SHFLAGS+=-Wl,--out-implib,libdl.dll.a | ||
9 | INSTALL+=shared-install | ||
10 | endif | ||
11 | ifeq ($(BUILD_STATIC),yes) | ||
12 | TARGETS+=libdl.a | ||
13 | INSTALL+=static-install | ||
14 | endif | ||
15 | ifeq ($(BUILD_MSVC),yes) | ||
16 | SHFLAGS+=-Wl,--output-def,libdl.def | ||
17 | LIBCMD=lib | ||
18 | INSTALL+=lib-install | ||
19 | else | ||
20 | LIBCMD=echo ignoring lib | ||
21 | endif | ||
22 | ifeq ($(DO_STRIP),yes) | ||
23 | STRIP=strip | ||
24 | else | ||
25 | STRIP=echo ignoring strip | ||
26 | endif | ||
27 | |||
28 | all: $(TARGETS) | ||
29 | |||
30 | dlfcn.o: | ||
31 | $(CC) -o dlfcn.o -c dlfcn.c -O3 -fomit-frame-pointer | ||
32 | |||
33 | libdl.a: dlfcn.o | ||
34 | ar cru libdl.a dlfcn.o | ||
35 | ranlib libdl.a | ||
36 | |||
37 | libdl.dll: dlfcn.o | ||
38 | $(CC) $(SHFLAGS) -shared -o libdl.dll dlfcn.o | ||
39 | $(LIBCMD) /machine:i386 /def:libdl.def | ||
40 | |||
41 | shared-install: | ||
42 | mkdir -p $(DESTDIR)$(PREFIX)/bin | ||
43 | cp libdl.dll $(DESTDIR)$(PREFIX)/bin | ||
44 | $(STRIP) $(DESTDIR)$(PREFIX)/bin/libdl.dll | ||
45 | mkdir -p $(DESTDIR)$(PREFIX)/lib | ||
46 | cp libdl.dll.a $(DESTDIR)$(PREFIX)/lib | ||
47 | mkdir -p $(DESTDIR)$(PREFIX)/include | ||
48 | cp dlfcn.h $(DESTDIR)$(PREFIX)/include | ||
49 | |||
50 | static-install: | ||
51 | mkdir -p $(DESTDIR)$(PREFIX)/lib | ||
52 | cp libdl.a $(DESTDIR)$(PREFIX)/lib | ||
53 | mkdir -p $(DESTDIR)$(PREFIX)/include | ||
54 | cp dlfcn.h $(DESTDIR)$(PREFIX)/include | ||
55 | |||
56 | lib-install: | ||
57 | mkdir -p $(DESTDIR)$(PREFIX)/lib | ||
58 | cp libdl.lib $(DESTDIR)$(PREFIX)/lib | ||
59 | |||
60 | install: $(INSTALL) | ||
61 | |||
62 | test.exe: | ||
63 | $(CC) -o test.exe test.c -L. -ldl | ||
64 | |||
65 | testdll.dll: | ||
66 | $(CC) -shared -o testdll.dll testdll.c | ||
67 | |||
68 | test: $(TARGETS) test.exe testdll.dll | ||
69 | test.exe | ||
70 | |||
71 | clean:: | ||
72 | rm -f dlfcn.o libdl.dll libdl.a libdl.def libdl.dll.a libdl.lib libdl.exp test.exe testdll.dll | ||
73 | |||
74 | distclean: clean | ||
75 | rm -f config.mak | ||
76 | |||
77 | .PHONY: clean distclean install test | ||