*** empty log message ***
[midnight-commander.git] / pc / Makefile.PC
blobf92d9e24beef7d93e30c6193a019a84138f4ba83
1 # Makefile.PC
3 # This is the Makefile for Midnight Commander under OS/2 and Windows NT
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
12 # Supported Compilers:
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 #       ...
25 # ---- Directories
26 MC_PC_DIR=.
27 MC_SRC_DIR=../src
28 VFS_DIR=../vfs
29 MCEDIT_SRC_DIR=../edit
30 MCGTKEDIT_SRC_DIR=../edit
31 MCEDIT_OBJS_DIR=$(OBJS_DIR)/edit
32 SLANG_SRC_DIR=../slang
33 SLANG_OBJS_DIR=$(OBJS_DIR)/slang
34 MC_EXE=$(OBJS_DIR)/mc.exe
36 # --- Midnight Defines
37 COMMON_DEFINES=-DMC_$(TARGET_OS) $(SPECIFIC_DEFINES)
38 MC_DEFINES=$(COMMON_DEFINES) -DHAVE_CONFIG_H
39 MC_INCLUDES=-I$(MC_PC_DIR) -I$(SLANG_SRC_DIR)
40 SLANG_DEFINES=$(COMMON_DEFINES)
41 SLANG_INCLUDES=-I$(MC_PC_DIR) -I$(SLANG_SRC_DIR)
42 MCEDIT_DEFINES=$(COMMON_DEFINES) -DHAVE_CONFIG_H
43 MCEDIT_INCLUDES=-I$(MC_PC_DIR) -I$(SLANG_SRC_DIR)
45 CFLAGS=$(SPECIFIC_MC_CFLAGS) $(MC_INCLUDES) $(MC_DEFINES) -c
46 SLANG_CFLAGS=$(SPECIFIC_SLANG_CFLAGS) $(SLANG_INCLUDES) $(SLANG_DEFINES) -c
47 MCEDIT_CFLAGS=$(SPECIFIC_MCEDIT_CFLAGS) $(MCEDIT_INCLUDES) $(MCEDIT_DEFINES) -c
50 all: object-dirs mc
51 object-dirs: $(OBJS_DIR) $(SLANG_OBJS_DIR) $(MCEDIT_OBJS_DIR)
53 mc: $(MC_EXE)
55 clean: 
56         deltree -y "$(SLANG_OBJS_DIR)"
57         deltree -y "$(MCEDIT_OBJS_DIR)"
58         deltree -y "$(OBJS_DIR)"
60 $(OBJS_DIR):
61         mkdir "$@"
63 $(SLANG_OBJS_DIR):
64         mkdir "$@"
66 $(MCEDIT_OBJS_DIR):
67         mkdir "$@"
69 $(OBJS_DIR)/%.$(OBJ_SUFFIX): $(MC_PC_DIR)/%.c
70         $(CC) $(CFLAGS) $(OBJ_PLACE)$@ $<
72 $(OBJS_DIR)/%.$(OBJ_SUFFIX): $(MC_SRC_DIR)/%.c
73         $(CC) $(CFLAGS) $(OBJ_PLACE)$@ $<
75 $(SLANG_OBJS_DIR)/%.$(OBJ_SUFFIX): $(SLANG_SRC_DIR)/%.c
76         $(CC) $(SLANG_CFLAGS) $(OBJ_PLACE)$@ $<
78 $(MCEDIT_OBJS_DIR)/%.$(OBJ_SUFFIX): $(MCEDIT_SRC_DIR)/%.c
79         $(CC) $(MCEDIT_CFLAGS) $(OBJ_PLACE)$@ $<
81 $(MCEDIT_OBJS_DIR)/%.$(OBJ_SUFFIX): $(MCGTKEDIT_SRC_DIR)/%.c
82         $(CC) -I$(MCGTKEDIT_SRC_DIR) -I$(MCEDIT_SRC_DIR) -I$(MCEDIT_SRC_DIR)/.. $(MCEDIT_CFLAGS) $(OBJ_PLACE)$@ $<
84 MC_SRCS= \
85         terms.c         \
86         user.c          \
87         file.c          \
88         filegui.c       \
89         filenot.c       \
90         findme.c        \
91         listmode.c      \
92         cmd.c           \
93         command.c       \
94         help.c          \
95         menu.c          \
96         view.c          \
97         dir.c           \
98         info.c          \
99         widget.c        \
100         option.c        \
101         dlg.c           \
102         panelize.c      \
103         profile.c       \
104         util.c          \
105         dialog.c        \
106         ext.c           \
107         color.c         \
108         layout.c        \
109         setup.c         \
110         regex.c         \
111         hotlist.c       \
112         tree.c          \
113         win.c           \
114         complete.c      \
115         find.c          \
116         wtools.c        \
117         boxes.c         \
118         background.c    \
119         main.c          \
120         popt.c          \
121         text.c          \
122         screen.c
124 PC_SRCS= \
125         slint_pc.c      \
126         chmod.c         \
127         drive.c
129 NT_SRCS= \
130         cons_nt.c       \
131         dirent_nt.c     \
132         key_nt.c        \
133         util_win32.c    \
134         util_winnt.c    \
135         util_nt.c
137 OS2_SRCS= \
138         cons_os2.c      \
139         dirent_os2.c    \
140         key_os2.c       \
141         util_os2.c
143 SLANG_NT=slw32tty.c
144 SLANG_OS2=slos2tty.c
146 SLANG_SRCS=             \
147         slerr.c         \
148         slgetkey.c      \
149         slsmg.c         \
150         slvideo.c       \
151         $(SLANG_$(TARGET_OS))
153 MCEDIT_SRCS=            \
154         edit.c          \
155         editcmd.c       \
156         editdraw.c      \
157         editmenu.c      \
158         editoptions.c   \
159         editwidget.c    \
160         syntax.c        \
161         wordproc.c
163 SRCS=$(MC_SRCS) $(PC_SRCS) $($(TARGET_OS)_SRCS) $(EXTRA_MC_SRCS)
165 OBJS=$(addprefix $(OBJS_DIR)/, \
166         $(patsubst %.c,%.$(OBJ_SUFFIX),$(SRCS)))
167 SLANG_OBJS=$(addprefix $(SLANG_OBJS_DIR)/, \
168         $(patsubst %.c,%.$(OBJ_SUFFIX),$(SLANG_SRCS)))
169 MCEDIT_OBJS=$(addprefix $(MCEDIT_OBJS_DIR)/, \
170         $(patsubst %.c,%.$(OBJ_SUFFIX),$(MCEDIT_SRCS)))
172 ifdef RSC
174 ifndef RES_SUFFIX
175 RES_SUFFIX=res
176 endif # RES_SUFFIX
178 MC_RES=$(OBJS_DIR)/mc.$(RES_SUFFIX)
180 $(MC_RES): $(MC_PC_DIR)/mc.rc $(MC_PC_DIR)/mc_nt.ico $(MC_PC_DIR)/config.h VERSION
181         $(RSC) $(RES_PLACE)$(MC_RES) $(RC_DEFINES) $(MC_PC_DIR)/mc.rc
183 else
184 MC_RES=
185 endif # !RSC
187 VERSION: ../configure.in
188         sed -n -e 's/^AM_INIT_AUTOMAKE([^,]*,[ []*\([0-9A-Za-z.-_]*\).*$$/#define VERSION "\1"/p' $< > $@