10b6cdbf2be2fcc57b501fc414aad7aafb823d8b
[reactos.git] / reactos / lib / gdi32 / makefile
1 # $Id: makefile,v 1.13 2000/08/05 18:01:48 dwelch Exp $
2 #
3 # Makefile for ReactOS gdi32.dll
4 #
5 TARGET=gdi32
6
7 BASE_CFLAGS = -I../../include
8
9 ifneq ($(HOST),mingw32-windows)
10 ifneq ($(HOST),mingw32-linux)
11 DLLTARGET=$(TARGET).a
12 else
13 DLLTARGET=$(TARGET).dll
14 endif
15 else
16 DLLTARGET=$(TARGET).dll
17 endif
18
19 all: $(DLLTARGET)
20
21 MAIN_OBJECTS = main/dllmain.o
22 MISC_OBJECTS = misc/stubs.o misc/stubsa.o misc/stubsw.o misc/win32k.o
23 RESOURCE_OBJECTS = $(TARGET).coff
24 OBJECTS_OBJECTS = objects/dc.o objects/line.o objects/pen.o objects/bitblt.o objects/text.o
25
26 OBJECTS = $(MAIN_OBJECTS) $(MISC_OBJECTS) $(RESOURCE_OBJECTS) $(OBJECTS_OBJECTS)
27
28 $(TARGET).a: $(OBJECTS)
29 $(AR) csr $(TARGET).a $(OBJECTS)
30
31 $(TARGET).coff: $(TARGET).rc ../../include/reactos/resource.h
32
33 $(TARGET).dll: $(DLLMAIN) $(OBJECTS) $(TARGET).def
34 $(LD) -r $(OBJECTS) -o $(TARGET).o
35 $(DLLTOOL) \
36 --dllname $(TARGET).dll \
37 --def $(TARGET).def \
38 --kill-at \
39 --output-lib $(TARGET).a
40 $(CC) $(TARGET).o \
41 ../kernel32/kernel32.a \
42 ../ntdll/ntdll.a \
43 -specs=$(TARGET)_specs \
44 -mdll \
45 -o junk.tmp \
46 -Wl,--entry,_DllMain@12 \
47 -Wl,--base-file,base.tmp
48 - $(RM) junk.tmp
49 $(DLLTOOL) \
50 --dllname $(TARGET).dll \
51 --base-file base.tmp \
52 --output-exp temp.exp \
53 --def $(TARGET).edf
54 - $(RM) base.tmp
55 $(CC) $(TARGET).o \
56 ../kernel32/kernel32.a \
57 ../ntdll/ntdll.a \
58 -specs=$(TARGET)_specs \
59 -mdll \
60 -o $(TARGET).dll \
61 -Wl,--entry,_DllMain@12 \
62 -Wl,--image-base,0x70000000 \
63 -Wl,--file-alignment,0x1000 \
64 -Wl,--section-alignment,0x1000 \
65 -Wl,temp.exp
66 - $(RM) temp.exp
67 $(NM) --numeric-sort $(TARGET).dll > $(TARGET).sym
68
69 ifeq ($(DOSCLI),yes)
70 CLEAN_FILES = *.a *.o *.coff *.sym *.tmp *.dll main\*.o misc\*.o objects\*.o
71 else
72 CLEAN_FILES = *.a *.o *.coff *.sym *.tmp *.dll main/*.o misc/*.o objects/*.o
73 endif
74
75 clean: $(CLEAN_FILES:%=%_clean)
76
77 $(CLEAN_FILES:%=%_clean): %_clean:
78 - $(RM) $*
79
80 .PHONY: clean $(CLEAN_FILES:%=%_clean)
81
82 floppy: $(FLOPPY_DIR)/dlls/$(TARGET).dll
83
84 $(FLOPPY_DIR)/dlls/$(TARGET).dll: $(TARGET).dll
85 ifeq ($(DOSCLI),yes)
86 $(CP) $(TARGET).dll $(FLOPPY_DIR)\dlls\$(TARGET).dll
87 else
88 $(CP) $(TARGET).dll $(FLOPPY_DIR)/dlls/$(TARGET).dll
89 endif
90
91 dist: $(DIST_DIR)/dlls/$(TARGET).dll
92
93 $(DIST_DIR)/dlls/$(TARGET).dll: $(TARGET).dll
94 ifeq ($(DOSCLI),yes)
95 $(CP) $(TARGET).dll ..\..\$(DIST_DIR)\dlls\$(TARGET).dll
96 else
97 $(CP) $(TARGET).dll ../../$(DIST_DIR)/dlls/$(TARGET).dll
98 endif
99
100 include ../../rules.mak
101
102 # EOF