forked from Baron-von-Riedesel/ExplASM
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
90 lines (70 loc) · 1.76 KB
/
Makefile
File metadata and controls
90 lines (70 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# nmake Makefile to create ExplASM.exe and CVViewer.dll
# tools used:
# - JWasm
# - MS Link
# - MS RC
#
# adjust the WinInc paths for includes/libs before running it
!ifndef DEBUG
DEBUG = 0
!endif
!ifndef MASM
MASM=0
!endif
WININC=\wininc
!if $(DEBUG)
AOPTD=-Zi -D_DEBUG
LOPTD=/DEBUG
!endif
SRCMODS = \
!include modules.inc
OBJNAMES = $(SRCMODS:.ASM=.OBJ)
!if $(DEBUG)
OBJMODS = $(OBJNAMES:.\=DEBUG\)
!else
OBJMODS = $(OBJNAMES:.\=RELEASE\)
!endif
NAMEDLL = CVViewer
NAMEEXE = ExplASM
AOPT=-nologo -c -coff -Sg $(AOPTD) -Fl$* -Sg -Fo$* -I$(WININC)\Include
!if $(MASM)
ASM = ml.exe $(AOPT)
!else
ASM = jwasm.exe $(AOPT)
!endif
LINK = link.exe
RC = rc.exe
DEPS = CVViewer.inc CShellBrowser.inc
!if $(DEBUG)
OUTDIR=DEBUG
!else
OUTDIR=RELEASE
!endif
.SUFFIXES: .asm .obj
.asm{$(OUTDIR)}.obj:
@$(ASM) $<
LIBS=kernel32.lib advapi32.lib user32.lib gdi32.lib uuid.lib ole32.lib oleaut32.lib shell32.lib comctl32.lib
ALL: $(OUTDIR) $(OUTDIR)\$(NAMEDLL).dll $(OUTDIR)\$(NAMEEXE).exe
$(OUTDIR):
@mkdir $(OUTDIR)
$(OUTDIR)\$(NAMEDLL).dll: $*.obj $(OUTDIR)\rsrc.res $(OBJMODS) Makefile
@$(LINK) @<< /NOLOGO $(LOPTD)
$*.obj $(OBJMODS) $(OUTDIR)\rsrc.res
/OUT:$*.dll /DLL /MAP:$*.map /DEF:$(NAMEDLL).def /SUBSYSTEM:windows
/LIBPATH:$(WININC)\Lib $(LIBS)
<<
$(OUTDIR)\$(NAMEEXE).exe: $*.obj $(OUTDIR)\rsrc.res $(OBJMODS) Makefile
@$(LINK) @<< /NOLOGO $(LOPTD)
$*.obj $(OBJMODS) $(OUTDIR)\rsrc.res
/OUT:$*.exe /MAP:$*.map /SUBSYSTEM:windows /OPT:NOWIN98
/LIBPATH:$(WININC)\Lib
<<
$(OUTDIR)\rsrc.res: rsrc.rc
@$(RC) -i$(WININC)\Include -fo$*.res rsrc.rc
$(OBJMODS): $(DEBS)
clean:
erase $(OUTDIR)\*.obj
erase $(OUTDIR)\*.map
erase $(OUTDIR)\*.exe
erase $(OUTDIR)\*.lst
erase $(OUTDIR)\*.res