Copy makefile
[reactos.git] / rosapps / mc / pc / Makefile.PC
1 # Makefile.PC
2 #
3 # This is the Makefile for Midnight Commander under OS/2 and Windows NT
4 #
5 # Written by Dan Nicolaescu
6 # 970423 hacked by Juan f. Grigera
7 # 970525 hacked again by jfg to add internal editor
8 # 971127 hacked by Pavel Roskin to make it work with mc-4.1.11
9 # 980206 hacked by Pavel Roskin to make it work with GNU make
10 # 980329 changed by Pavel Roskin to make it common for OS/2 and NT
11 #
12 # Supported Compilers:
13 #
14 # For Windows NT:
15 # Makefile.VC4: Microsoft Visual C++ 4.0 and above
16 # Makefile.BC5: Borland C++ 5.x
17 # Makefile.MIN: MinGW
18 # Makefile.RSX: RSX
19 # For OS/2:
20 # Makefile.EMX: EMX/GCC
21 # Makefile.BC2: Borland C++ 2.x
22 # Makefile.IBM: IBM CSet or Visual Age C++
23 # ...
24
25 # ---- Directories
26 MC_PC_DIR=.
27 MC_SRC_DIR=../src
28 VFS_DIR=../vfs
29 MCEDIT_SRC_DIR=../edit
30 MCEDIT_OBJS_DIR=$(OBJS_DIR)/edit
31 SLANG_SRC_DIR=../slang
32 SLANG_OBJS_DIR=$(OBJS_DIR)/slang
33 MC_EXE=$(OBJS_DIR)/mc.exe
34
35 # --- Midnight Defines
36 COMMON_DEFINES=-DMC_$(TARGET_OS) $(SPECIFIC_DEFINES)
37 MC_DEFINES=$(COMMON_DEFINES) -DHAVE_CONFIG_H
38 MC_INCLUDES=-I$(MC_PC_DIR) -I$(SLANG_SRC_DIR)
39 SLANG_DEFINES=$(COMMON_DEFINES)
40 SLANG_INCLUDES=-I$(MC_PC_DIR) -I$(SLANG_SRC_DIR)
41 MCEDIT_DEFINES=$(COMMON_DEFINES) -DHAVE_CONFIG_H
42 MCEDIT_INCLUDES=-I$(MC_PC_DIR) -I$(SLANG_SRC_DIR)
43
44 CFLAGS=$(SPECIFIC_MC_CFLAGS) $(MC_INCLUDES) $(MC_DEFINES) -c
45 SLANG_CFLAGS=$(SPECIFIC_SLANG_CFLAGS) $(SLANG_INCLUDES) $(SLANG_DEFINES) -c
46 MCEDIT_CFLAGS=$(SPECIFIC_MCEDIT_CFLAGS) $(MCEDIT_INCLUDES) $(MCEDIT_DEFINES) -c
47
48
49 all: object-dirs mc
50 object-dirs: $(OBJS_DIR) $(SLANG_OBJS_DIR) $(MCEDIT_OBJS_DIR)
51
52 mc: $(MC_EXE)
53
54 clean:
55 deltree -y "$(SLANG_OBJS_DIR)"
56 deltree -y "$(MCEDIT_OBJS_DIR)"
57 deltree -y "$(OBJS_DIR)"
58
59 $(OBJS_DIR):
60 mkdir "$@"
61
62 $(SLANG_OBJS_DIR):
63 mkdir "$@"
64
65 $(MCEDIT_OBJS_DIR):
66 mkdir "$@"
67
68 $(OBJS_DIR)/%.$(OBJ_SUFFIX): $(MC_PC_DIR)/%.c
69 $(CC) $(CFLAGS) $(OBJ_PLACE)$@ $<
70
71 $(OBJS_DIR)/%.$(OBJ_SUFFIX): $(MC_SRC_DIR)/%.c
72 $(CC) $(CFLAGS) $(OBJ_PLACE)$@ $<
73
74 $(SLANG_OBJS_DIR)/%.$(OBJ_SUFFIX): $(SLANG_SRC_DIR)/%.c
75 $(CC) $(SLANG_CFLAGS) $(OBJ_PLACE)$@ $<
76
77 $(MCEDIT_OBJS_DIR)/%.$(OBJ_SUFFIX): $(MCEDIT_SRC_DIR)/%.c
78 $(CC) $(MCEDIT_CFLAGS) $(OBJ_PLACE)$@ $<
79
80 MC_SRCS= \
81 terms.c \
82 user.c \
83 file.c \
84 listmode.c \
85 cmd.c \
86 command.c \
87 help.c \
88 menu.c \
89 view.c \
90 dir.c \
91 info.c \
92 widget.c \
93 option.c \
94 dlg.c \
95 panelize.c \
96 profile.c \
97 util.c \
98 dialog.c \
99 ext.c \
100 color.c \
101 layout.c \
102 setup.c \
103 regex.c \
104 hotlist.c \
105 tree.c \
106 win.c \
107 complete.c \
108 find.c \
109 wtools.c \
110 boxes.c \
111 background.c \
112 main.c \
113 popt.c \
114 text.c \
115 screen.c
116
117 PC_SRCS= \
118 slint_pc.c \
119 chmod.c \
120 drive.c
121
122 NT_SRCS= \
123 cons_nt.c \
124 dirent_nt.c \
125 key_nt.c \
126 util_win32.c \
127 util_winnt.c \
128 util_nt.c
129
130 OS2_SRCS= \
131 cons_os2.c \
132 dirent_os2.c \
133 key_os2.c \
134 util_os2.c
135
136 SLANG_NT=slw32tty.c
137 SLANG_OS2=slos2tty.c
138
139 SLANG_SRCS= \
140 slerr.c \
141 slgetkey.c \
142 slsmg.c \
143 slvideo.c \
144 $(SLANG_$(TARGET_OS))
145
146 MCEDIT_SRCS= \
147 edit.c \
148 editcmd.c \
149 editdraw.c \
150 editmenu.c \
151 editoptions.c \
152 editwidget.c \
153 syntax.c \
154 wordproc.c
155
156 SRCS=$(MC_SRCS) $(PC_SRCS) $($(TARGET_OS)_SRCS) $(EXTRA_MC_SRCS)
157
158 OBJS=$(addprefix $(OBJS_DIR)/, \
159 $(patsubst %.c,%.$(OBJ_SUFFIX),$(SRCS)))
160 SLANG_OBJS=$(addprefix $(SLANG_OBJS_DIR)/, \
161 $(patsubst %.c,%.$(OBJ_SUFFIX),$(SLANG_SRCS)))
162 MCEDIT_OBJS=$(addprefix $(MCEDIT_OBJS_DIR)/, \
163 $(patsubst %.c,%.$(OBJ_SUFFIX),$(MCEDIT_SRCS)))
164
165 ifdef RSC
166
167 ifndef RES_SUFFIX
168 RES_SUFFIX=res
169 endif # RES_SUFFIX
170
171 MC_RES=$(OBJS_DIR)/mc.$(RES_SUFFIX)
172
173 $(MC_RES): $(MC_PC_DIR)/mc.rc $(MC_PC_DIR)/mc_nt.ico $(MC_PC_DIR)/config.h ../VERSION
174 $(RSC) $(RES_PLACE)$(MC_RES) $(RC_DEFINES) $(MC_PC_DIR)/mc.rc
175
176 else
177 MC_RES=
178 endif # !RSC