Created
March 19, 2023 05:37
-
-
Save lpproj/adb110837947feb06e8f95837343ad60 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Makefile for OpenWatcom's wmake | |
# wmake -h -f idedev_ow.mak | |
# | |
# WCL/WCC specific options: | |
# important options for this build: | |
# -ecc default calling conversion: cdecl (compatible with MS/Borland C) | |
# -zk0 charset: Shift_JIS (cp932) | |
# -s remove stack check code | |
# -k4096 (linker) set default stack size: 4096 bytes | |
# extra options: | |
# -zq quiet | |
# -os optimize for size | |
# -Fr do not produce err file | |
# | |
# Assembler options (MASM 6.x/JWasm): | |
# /Zm MASM 5.1 compatible mode | |
# /Cp preserve case (public symbols) | |
# /Gc default calling conversion: cdecl (needed for JWasm) | |
# /Fr (JWasm) do not produce err file | |
# | |
# note: | |
# まりも氏のidedevを、ためしにOpenWatcomのCコンパイラ(wcl)とJWasmで | |
# 野良ビルドしてみるためのメモ。 | |
# (ファイル完全無修正では無理でした…) | |
# | |
# * OpenWatcomのバージョンはたぶん1.5以上が必要(2.0betaでのみテスト)。 | |
# -eccオプションに対するコンパイラとライブラリ両方のサポートが必須。 | |
# * Cソースコード終端のEOFコードを適当なエディタかツールで除去する必要がある。 | |
# (OpenWatcom1.5以上ではISO C不適合扱いでエラーになる。1.4では無修正で | |
# 通るが、ライブラリ側の-eccオプション対応が不十分でリンクが失敗する。 | |
# 1.3までのコンパイラはデフォルトのcalling conversionを変更できない) | |
# (内部が完全にUnicode処理のエディタでうかつに編集すると、IDEDEV.C内の | |
# 罫線コードが文字化けする点に注意が必要) | |
# * Watcom Cでコンパイルしたプログラムのデフォルトスタックサイズは2Kバイトだが | |
# 他のコンパイラを想定したソースだとスタック不足で動作不安定になることが | |
# 意外とある。MSやBorlandは4~5Kバイト程度なのですこし増やしておくのが無難。 | |
# * アセンブラはMicrosoft MASM 5.1か6.xが必要。OpenWatcom付属のwasmは | |
# 使えない。JWasmで一応代用できる(-Gcオプション必須)。 | |
# | |
!ifdef __UNIX__ | |
O=o | |
A=a | |
OPT=- | |
D=/ | |
!else | |
O=obj | |
A=lib | |
OPT=/ | |
D=\ | |
!endif | |
X=.exe | |
.ERASE | |
.EXTENSIONS: | |
.EXTENSIONS: .com .exe .$(O) .C .S | |
# use wmake buitin rm & copy | |
RM_F=rm -f | |
CP=copy | |
CC=wcl | |
CFLAGS=$(OPT)zq $(OPT)s $(OPT)os $(OPT)Fr $(OPT)zk0 $(OPT)ecc | |
LD=wcl | |
LDFLAGS=$(OPT)k4096 | |
#AS=ml | |
#AFLAGS=/nologo /Zm /Cx | |
AS=jwasm | |
AFLAGS=-nologo -Zm -Cx -Gc -Fr | |
.S.$(O): | |
$(AS) $(OPT)c $(AFLAGS) $(OPT)Fo$@ $< | |
.C.$(O): | |
$(CC) $(OPT)c $(CFLAGS) $(OPT)Fo$@ $< | |
SUBOBJS=dev1.$(O) ata.$(O) misc.$(O) | |
all: idedev$(X) idedev_$(X) | |
clean: .SYMBOLIC | |
-$(RM_F) idedev.exe idedev_.exe | |
-$(RM_F) *.$(O) *.err | |
idedev$(X): idedev.$(O) $(SUBOBJS) | |
$(LD) $(CFLAGS) $(OPT)Fe$@ idedev.$(O) $(SUBOBJS) $(LDFLAGS) | |
idedev_$(X): idedev_.$(O) $(SUBOBJS) | |
$(LD) $(CFLAGS) $(OPT)Fe$@ idedev_.$(O) $(SUBOBJS) $(LDFLAGS) | |
idedev.$(O): IDEDEV.C | |
idedev_.$(O): IDEDEV_.C | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment