1 | # $Id: makefile,v 1.16 2000-03-18 19:48:53 sandervl Exp $
|
---|
2 |
|
---|
3 | #
|
---|
4 | # Odin32 API
|
---|
5 | #
|
---|
6 | # msvcrt.dll makefile
|
---|
7 | #
|
---|
8 |
|
---|
9 | # Directory macros.
|
---|
10 | PDWIN32_INCLUDE = ..\..\include
|
---|
11 | PDWIN32_LIB = ..\..\lib
|
---|
12 | PDWIN32_BIN = ..\..\$(OBJDIR)
|
---|
13 | PDWIN32_TOOLS = ..\..\tools\bin
|
---|
14 |
|
---|
15 |
|
---|
16 | # Compiler, tools, and interference rules.
|
---|
17 | !include $(PDWIN32_INCLUDE)/pdwin32.mk
|
---|
18 |
|
---|
19 |
|
---|
20 | # Flag overloads and local macros.
|
---|
21 | CLEANEXTRAS = msvcrtrsrc.asm msvcrt20rsrc.asm msvcrt40rsrc.asm \
|
---|
22 | $(PDWIN32_BIN)\msvcrt.dll $(PDWIN32_LIB)\msvcrt.lib \
|
---|
23 | $(PDWIN32_BIN)\msvcrt20.dll $(PDWIN32_LIB)\msvcrt20.lib \
|
---|
24 | $(PDWIN32_BIN)\msvcrt40.dll $(PDWIN32_LIB)\msvcrt40.lib
|
---|
25 |
|
---|
26 |
|
---|
27 | # Object files. All objects should be prefixed with $(OBJDIR)!
|
---|
28 | OBJS = \
|
---|
29 | $(OBJDIR)\msvcrt.obj \
|
---|
30 | $(OBJDIR)\util.obj \
|
---|
31 | $(OBJDIR)\$(TARGET)rsrc.obj \
|
---|
32 | $(PDWIN32_LIB)\dllentry.obj
|
---|
33 |
|
---|
34 |
|
---|
35 | !ifndef TARGET
|
---|
36 |
|
---|
37 | # Dummy all rule - if not both all and lib will be invoked when
|
---|
38 | # invoking nmake without a target.
|
---|
39 | _all: all
|
---|
40 |
|
---|
41 |
|
---|
42 | # All and lib rules - builds all targets by reinvoking make with target macro set.
|
---|
43 | all lib:
|
---|
44 | $(MAKE_CMD) TARGET=msvcrt $@
|
---|
45 | $(MAKE_CMD) TARGET=msvcrt20 $@
|
---|
46 | $(MAKE_CMD) TARGET=msvcrt40 $@
|
---|
47 |
|
---|
48 |
|
---|
49 | !else
|
---|
50 |
|
---|
51 |
|
---|
52 | # Real all rule - build objs, target dll, copies dll to bin and makes libs.
|
---|
53 | all: $(OBJDIR) \
|
---|
54 | $(OBJDIR)\$(TARGET).dll \
|
---|
55 | $(PDWIN32_BIN)\$(TARGET).dll \
|
---|
56 | lib
|
---|
57 |
|
---|
58 |
|
---|
59 | # Real lib rule - build importlibrary (and evt. other libs)
|
---|
60 | lib: $(TARGET).lib $(PDWIN32_LIB)\$(TARGET).lib
|
---|
61 |
|
---|
62 | !endif
|
---|
63 |
|
---|
64 |
|
---|
65 | # Dll rule - builds the target dll.
|
---|
66 | $(OBJDIR)\$(TARGET).dll: $(OBJS) $(TARGET).def $(OBJDIR)\$(TARGET).lrf
|
---|
67 | -4 $(LD2) $(LD2FLAGS) @$(OBJDIR)\$(TARGET).lrf
|
---|
68 |
|
---|
69 |
|
---|
70 | # Linker file - creates the parameter file passed on to the linker.
|
---|
71 | $(OBJDIR)\$(TARGET).lrf: makefile
|
---|
72 | @echo Creating file <<$@
|
---|
73 | /OUT:$(OBJDIR)\$(TARGET).dll
|
---|
74 | /MAP:$(OBJDIR)\$(TARGET).map
|
---|
75 | $(OBJS)
|
---|
76 | $(PDWIN32_LIB)/kernel32.lib
|
---|
77 | $(PDWIN32_LIB)/crtdll.lib
|
---|
78 | $(PDWIN32_LIB)/odincrt.lib
|
---|
79 | OS2386.LIB
|
---|
80 | $(RTLLIB_O)
|
---|
81 | $(TARGET).def
|
---|
82 | <<keep
|
---|
83 |
|
---|
84 |
|
---|
85 | # Dep rule - makes depenencies for C, C++ and Asm files.
|
---|
86 | dep:
|
---|
87 | $(DEPEND) -I$(PDWIN32_INCLUDE);$(PDWIN32_INCLUDE)\win \
|
---|
88 | *.c *.cpp *.h *.asm *.inc $(PDWIN32_INCLUDE)\*.h
|
---|
89 |
|
---|
90 |
|
---|
91 | # Dummy target used for clean
|
---|
92 | !ifndef TARGET
|
---|
93 | TARGET = msvcrt
|
---|
94 | !endif
|
---|
95 |
|
---|
96 |
|
---|
97 | # Includes the common rules.
|
---|
98 | !include $(PDWIN32_INCLUDE)/pdwin32.post
|
---|
99 |
|
---|