OSDN Git Service

renemae gmake.mak,nmake.mak to makefile
[hos/hos-v4a.git] / kernel / build / common / nmake / makeexe.inc
1 # ----------------------------------------------------------------------------
2 #  Hyper Operating System V4 Advance
3 #    common include file for execution file
4 #
5 #  Copyright (C) 1998-2007 by Project HOS
6 #  http://sourceforge.jp/projects/hos/
7 # ----------------------------------------------------------------------------
8
9
10
11
12 # --------------------------------------
13 #  %jp{オプション解析}
14 # --------------------------------------
15
16 !ifndef DEBUG
17 DEBUG = No
18 !endif
19
20 !ifndef OPT_SPEED
21 OPT_SPEED = No
22 !endif
23
24 !ifndef OPT_SIZE
25 OPT_SIZE = No
26 !endif
27
28 !ifndef KERNEL_DEBUG
29 KERNEL_DEBUG = No
30 !endif
31
32
33 !if "$(DEBUG)" == "Yes"
34 # %jp{デバッグ指定があればデバッグ版作成}
35 TARGET = $(TARGET)dbg
36 AFLAGS = $(AFLAGS) $(AFLAGS_DBG) $(AFLAGS_OPT_NONE)
37 CFLAGS = $(CFLAGS) $(CFLAGS_DBG) $(CFLAGS_OPT_NONE)
38 !else
39 !if "$(OPT_SPEED)" == "Yes"
40 # %jp{速度最適化指定があれば速度優先}
41 AFLAGS = $(AFLAGS) $(AFLAGS_OPT_SPEED)
42 CFLAGS = $(CFLAGS) $(AFLAGS_OPT_SPEED)
43 !else
44 !if "$(OPT_SIZE)" == "Yes"
45 # %jp{サイズ優先適化指定があればサイズ優先}
46 AFLAGS = $(AFLAGS) $(AFLAGS_OPT_SIZE)
47 CFLAGS = $(CFLAGS) $(AFLAGS_OPT_SIZE)
48 !else
49 # %jp{デフォルトで通常の最適化}
50 AFLAGS = $(AFLAGS) $(AFLAGS_OPT_NORMAL)
51 CFLAGS = $(CFLAGS) $(AFLAGS_OPT_NORMAL)
52 !endif
53 !endif
54 !endif
55
56
57
58 # --------------------------------------
59 #  %jp{ターゲット定義}
60 # --------------------------------------
61
62 # %jp{ターゲット実行ファイル名}
63 TARGET_EXE = $(TARGET).$(EXT_EXE)
64
65
66
67 # --------------------------------------
68 #  %jp{各種マクロ文字の正規化}
69 # --------------------------------------
70
71 !ifdef OBJS
72 OBJS = $(OBJS:  = )
73 OBJS = $(OBJS:  = )
74 OBJS = $(OBJS:  = )
75 OBJS = $(OBJS:  = )
76 OBJS = $(OBJS:  = )
77 OBJS = @$(OBJS)@
78 OBJS = $(OBJS:@ =)
79 OBJS = $(OBJS: @=)
80 OBJS = $(OBJS:@=)
81 !endif
82
83 !ifdef LIBS
84 LIBS = $(LIBS:  = )
85 LIBS = $(LIBS:  = )
86 LIBS = $(LIBS:  = )
87 LIBS = $(LIBS:  = )
88 LIBS = $(LIBS:  = )
89 LIBS = @$(LIBS)@
90 LIBS = $(LIBS:@ =)
91 LIBS = $(LIBS: @=)
92 LIBS = $(LIBS:@=)
93 !endif
94
95
96
97 # --------------------------------------
98 #  %jp{カーネルライブラリの選択}
99 # --------------------------------------
100
101 !ifndef KERNEL_LIB_NAME
102 KERNEL_LIB_NAME = libhosv4a
103 !endif
104
105
106 # %jp{デバッグ指定}
107 !if "$(KERNEL_DEBUG)" == "Yes"
108 KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)dbg
109 !endif
110
111
112 # %jp{エラーレベル指定}
113 !ifdef KERNEL_ERRLEVEL
114 !if $(KERNEL_ERRLEVEL) == 0
115 KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er0
116 !elseif $(KERNEL_ERRLEVEL) == 1
117 KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er1
118 !elseif $(KERNEL_ERRLEVEL) == 2
119 KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er2
120 !elseif $(KERNEL_ERRLEVEL) == 3
121 KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er3
122 !elseif $(KERNEL_ERRLEVEL) == 4
123 KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er4
124 !endif
125 !endif
126
127 # kernel library
128 KERNEL_LIB = $(KERNEL_BUILD_DIR)\$(KERNEL_LIB_NAME).$(EXT_LIB)
129
130
131 # --------------------------------------
132 #  %jp{カーネル利用の設定}
133 # --------------------------------------
134
135 INC_DIRS = $(INC_DIRS) $(KERNEL_DIR)\include
136 LIBS     = $(LIBS) $(KERNEL_LIB)
137
138
139
140 # --------------------------------------
141 #  %jp{ルール}
142 # --------------------------------------
143
144
145 # %jp{カーネルライブラリ}
146 $(KERNEL_LIB): kernel_make
147
148
149 # %jp{all処理}
150 makeexe_all: $(KERNEL_LIB) mkdir_objs $(CSRCS) $(ASRCS)
151
152
153 # %jp{オブジェクト出力ディレクトリ作成}
154 mkdir_objs:
155         -$(CMD_MKDIR) $(OBJS_DIR)
156
157
158 # %jp{クリーンナップ}
159 makeexe_clean:
160         -$(CMD_RM) $(TARGET_LIB) $(OBJS)
161
162
163 # %jp{カーネル生成}
164 kernel_make:
165         $(CMD_CD) $(KERNEL_BUILD_DIR)
166         $(MAKE) DEBUG=$(KERNEL_DEBUG) ERRLEVEL=$(KERNEL_ERRLEVEL)
167         $(CMD_CD) $(MAKEDIR)
168
169
170 # %jp{カーネル生成}
171 kernel_clean:
172         $(CMD_CD) $(KERNEL_BUILD_DIR)
173         $(MAKE) DEBUG=$(KERNEL_DEBUG) ERRLEVEL=$(KERNEL_ERRLEVEL) clean
174         $(CMD_CD) $(MAKEDIR)
175
176
177
178 # end of file