dc0963855b1ed43a06896b9f19cf8232b04a3b8d
[reactos.git] / reactos / lib / advapi32 / makefile
1 # $Id: makefile,v 1.12 2000/04/05 01:40:35 ekohl Exp $
2 #
3 # Makefile for ReactOS advapi32.dll
4 #
5
6 BASE_CFLAGS = -I../../include
7
8 TARGETNAME=advapi32
9
10 ifneq ($(HOST),mingw32-windows)
11 ifneq ($(HOST),mingw32-linux)
12 DLLTARGET=$(TARGETNAME).a
13 else
14 DLLTARGET=$(TARGETNAME).dll
15 endif
16 else
17 DLLTARGET=$(TARGETNAME).dll
18 endif
19
20
21 MISC_OBJECTS = misc/dllmain.o misc/shutdown.o \
22 misc/sysfunc.o
23
24 REGISTRY_OBJECTS = reg/reg.o
25
26 SECURITY_OBJECTS = sec/lsa.o sec/sec.o sec/ac.o sec/sid.o
27
28 SERVICE_OBJECTS = service/scm.o service/sctrl.o service/undoc.o
29
30 TOKEN_OBJECTS = token/token.o
31
32 RESOURCE_OBJECT = $(TARGETNAME).coff
33
34 OBJECTS = $(MISC_OBJECTS) $(REGISTRY_OBJECTS) $(SECURITY_OBJECTS) \
35 $(SERVICE_OBJECTS) $(TOKEN_OBJECTS) \
36 $(RESOURCE_OBJECT)
37
38 ifeq ($(DOSCLI),yes)
39 CLEAN_FILES = misc\*.o reg\*.o sec\*.o service\*.o token\*.o \
40 $(TARGETNAME).o $(TARGETNAME).a junk.tmp base.tmp temp.exp \
41 $(TARGETNAME).dll $(TARGETNAME).sym $(TARGETNAME).coff
42 else
43 CLEAN_FILES = misc/*.o reg/*.o sec/*.o service/*.o token/*.o \
44 $(TARGETNAME).o $(TARGETNAME).a junk.tmp base.tmp temp.exp \
45 $(TARGETNAME).dll $(TARGETNAME).sym $(TARGETNAME).coff
46 endif
47
48 all: $(DLLTARGET)
49
50 $(TARGETNAME).coff: $(TARGETNAME).rc ../../include/reactos/resource.h
51
52 $(TARGETNAME).a: $(OBJECTS)
53 $(LD) -r $(OBJECTS) -o $(TARGETNAME).a
54
55 $(TARGETNAME).dll: $(DLLMAIN) $(OBJECTS) $(TARGETNAME).def
56 $(LD) -r $(OBJECTS) -o $(TARGETNAME).o
57 $(DLLTOOL) \
58 --dllname $(TARGETNAME).dll \
59 --def $(TARGETNAME).def \
60 --kill-at \
61 --output-lib $(TARGETNAME).a
62 $(CC) \
63 $(TARGETNAME).o \
64 ../ntdll/ntdll.a \
65 ../kernel32/kernel32.a \
66 -specs=$(TARGETNAME)_specs \
67 -mdll \
68 -o junk.tmp \
69 -Wl,--base-file,base.tmp
70 - $(RM) junk.tmp
71 $(DLLTOOL) \
72 --dllname $(TARGETNAME).dll \
73 --base-file base.tmp \
74 --output-exp temp.exp \
75 --def $(TARGETNAME).edf
76 - $(RM) base.tmp
77 $(CC) \
78 $(TARGETNAME).o \
79 ../ntdll/ntdll.a \
80 ../kernel32/kernel32.a \
81 -specs=$(TARGETNAME)_specs \
82 -mdll \
83 -o $(TARGETNAME).dll \
84 -Wl,--image-base,0x20000000 \
85 -Wl,--file-alignment,0x1000 \
86 -Wl,--section-alignment,0x1000 \
87 -Wl,temp.exp
88 - $(RM) temp.exp
89 $(NM) --numeric-sort $(TARGETNAME).dll > $(TARGETNAME).sym
90
91
92 clean: $(CLEAN_FILES:%=%_clean)
93
94 $(CLEAN_FILES:%=%_clean): %_clean:
95 - $(RM) $*
96
97 .PHONY: clean $(CLEAN_FILES:%=%_clean)
98
99 floppy: $(FLOPPY_DIR)/dlls/$(TARGETNAME).dll
100
101 $(FLOPPY_DIR)/dlls/$(TARGETNAME).dll: $(TARGETNAME).dll
102 ifeq ($(DOSCLI),yes)
103 $(CP) $(TARGETNAME).dll $(FLOPPY_DIR)\dlls\$(TARGETNAME).dll
104 else
105 $(CP) $(TARGETNAME).dll $(FLOPPY_DIR)/dlls/$(TARGETNAME).dll
106 endif
107
108 dist: $(DIST_DIR)/dlls/$(TARGETNAME).dll
109
110 $(DIST_DIR)/dlls/$(TARGETNAME).dll: $(TARGETNAME).dll
111 ifeq ($(DOSCLI),yes)
112 $(CP) $(TARGETNAME).dll ..\..\$(DIST_DIR)\dlls\$(TARGETNAME).dll
113 else
114 $(CP) $(TARGETNAME).dll ../../$(DIST_DIR)/dlls/$(TARGETNAME).dll
115 endif
116
117 include ../../rules.mak
118