16171b41c9bbc666244fce0f970d2f9f96029f26
[reactos.git] / reactos / lib / fmifs / makefile
1 # $Id: makefile,v 1.5 1999/07/16 23:37:04 rex Exp $
2 #
3 # Makefile for fmifs.dll
4 #
5 TARGET=fmifs
6 ifneq ($(HOST),mingw32-windows)
7 ifneq ($(HOST),mingw32-linux)
8 DLLTARGET=$(TARGET).a
9 else
10 DLLTARGET=$(TARGET).dll
11 endif
12 else
13 DLLTARGET=$(TARGET).dll
14 endif
15
16 all: $(DLLTARGET)
17
18 IFS_OBJECTS = chkdsk.o compress.o diskcopy.o extend.o \
19 format.o init.o label.o media.o
20
21 MISC_OBJECTS = dllmain.o $(TARGET).coff
22
23 OBJECTS = $(IFS_OBJECTS) $(MISC_OBJECTS)
24
25 CLEAN_FILES = *.o *.a *.tmp *.dll *.sym *.coff
26
27 $(TARGET).coff: $(TARGET).rc ../../include/reactos/resource.h
28
29 $(TARGET).a: $(OBJECTS)
30 $(AR) csr $(TARGET).a $(OBJECTS)
31
32 $(TARGET).dll: $(DLLMAIN) $(OBJECTS) $(TARGET).def
33 $(LD) -r $(OBJECTS) -o $(TARGET).o
34 $(DLLTOOL) \
35 --dllname $(TARGET).dll \
36 --def $(TARGET).def \
37 --output-lib $(TARGET).a \
38 --add-stdcall-alias \
39 --kill-at
40 $(CC) \
41 -specs=$(TARGET)_specs \
42 -mdll \
43 -o junk.tmp \
44 -Wl,--base-file,base.tmp \
45 $(TARGET).o
46 - $(RM) junk.tmp
47 $(DLLTOOL) \
48 --dllname $(TARGET).dll \
49 --base-file base.tmp \
50 --output-exp temp.exp \
51 --def $(TARGET).def \
52 --add-stdcall-alias \
53 --kill-at
54 - $(RM) base.tmp
55 $(CC) \
56 -specs=$(TARGET)_specs \
57 -mdll \
58 -o $(TARGET).dll \
59 $(TARGET).o \
60 -Wl,--image-base,0x70000000 \
61 -Wl,--file-alignment,0x1000 \
62 -Wl,--section-alignment,0x1000 \
63 -Wl,temp.exp
64 - $(RM) temp.exp
65 $(NM) --numeric-sort $(TARGET).dll > $(TARGET).sym
66
67 clean: $(CLEAN_FILES:%=%_clean)
68
69 $(CLEAN_FILES:%=%_clean): %_clean:
70 - $(RM) $*
71
72 .PHONY: clean $(CLEAN_FILES:%=%_clean)
73
74 floppy: $(FLOPPY_DIR)/dlls/$(TARGET).dll
75
76 $(FLOPPY_DIR)/dlls/$(TARGET).dll: $(TARGET).dll
77 ifeq ($(DOSCLI),yes)
78 $(CP) $(TARGET).dll $(FLOPPY_DIR)\dlls\$(TARGET).dll
79 else
80 $(CP) $(TARGET).dll $(FLOPPY_DIR)/dlls/$(TARGET).dll
81 endif
82
83 dist: $(DIST_DIR)/dlls/$(TARGET).dll
84
85 $(DIST_DIR)/dlls/$(TARGET).dll: $(TARGET).dll
86 ifeq ($(DOSCLI),yes)
87 $(CP) $(TARGET).dll ..\..\$(DIST_DIR)\dlls\$(TARGET).dll
88 else
89 $(CP) $(TARGET).dll ../../$(DIST_DIR)/dlls/$(TARGET).dll
90 endif
91
92 include ../../rules.mak
93
94 # EOF