ページへ戻る
印刷
hideyosi/OLD/LinuxでOSASKをビルド!(秒読み)
をテンプレートにして作成 ::
OSASK計画
osaskwiki
:hideyosi/OLD/LinuxでOSASKをビルド!(秒読み) をテンプレートにして作成
開始行:
TITLE:x
-COLOR(#ff0000){当ページもだいぶガチャガチャになってしま...
~
~
*このページの前提
-なぜ、そんなことをする?
--やりたいから
-意味はあるのか?
--関知しない
-だれかの・なにかの役にたつのか?
--関知しない
-そもそも、なぜここにあるのか?
--ここに置きたかったから。最終的にはどこかにまとめて移設...
*さて、それでははじめよう。
**必要な環境を準備する。
-Linux環境
--まず、当然ですがLinuxの環境がいります。私の場合は VineL...
--2003/08/14現在で、すべてのアップグレードを行っています
--カーネルは 2.4.21 を自環境に合わせてコンパイルしてあり...
-本Wikiの[[Linux上でOSASK用バイナリを生成しよう]]を実行し...
--本Wikiの[[ASKA]]から、テストバージョンのASKAを導入して...
--同じく本Wikiの[[ASKA]]から、2003/08/14 にI.Takさんが移...
--小柳さんのページから、2003/08/14現在 最新のVer.3.9 のソ...
--以上でOKかな?
--tolset05 (のソースsrcset05) に入ってるosalink1もインス...
**実験開始!
-まず、ソースを解凍する。
~/$ lha -x make39.lzh
~/$ cd src39
~/src39$
-とりあえず、一発、メイクをかけてみよう。
~/src39$ make
for %%i in (ankfont0 sgg00lib pcat) do make -C %%i
/bin/sh: -c: line 1: syntax error near unexpected token ...
/bin/sh: -c: line 1: `for %%i in (ankfont0 sgg00lib pcat...
make: *** [ALL] エラー 2
~/src39$
-ふむふむ・・・。どうも、makefile の56行目の for の構文が...
''makefile 56行目''
・
・
ALL :
for %%i in ($(SUBDIRS)) do $(MAKE) -C %%i
$(MAKE) $(TARGET)
・
・
''↓''
・
・
ALL :
for i in $(SUBDIRS); do $(MAKE) -C $$i; done
$(MAKE) $(TARGET)
・
・
-これでメイク再び。こんどはさっきと違うエラーが出てくる。
~/src39$ make
for i in ankfont0 sgg00lib pcat; do make -C $i; done
make[1]: 入ります ディレクトリ `src39/ankfont0'
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make[1]: *** ターゲット `..\rules.mak' を make するルー...
make[1]: 出ます ディレクトリ `src39/ankfont0'
make[1]: 入ります ディレクトリ `src39/sgg00lib'
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make[1]: *** ターゲット `..\rules.mak' を make するルー...
make[1]: 出ます ディレクトリ `src39/sgg00lib'
make[1]: 入ります ディレクトリ `src39/pcat'
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make[1]: *** ターゲット `..\rules.mak' を make するルー...
make[1]: 出ます ディレクトリ `src39/pcat'
make: *** [ALL] エラー 2
~/src39$
-最初に直した部分を見てもわかるが、OSASKのソースはいくつ...
-上記のエラーを見ると、ankfont0/ sgg00lib/ pcat/ にある、...
***さっそく、ankfont0/ に降りて makefile を覗いてみる。
-まず、すぐに分かったのが パス区切り文字 。元々のソースは...
1行目 include ..\depend.mak
2行目 include ..\rules.mak
・
39行目 $(DISTDIR)\$(TARGET) : $(TARGET0) ..\depend.mak
40行目 copy /y $(TARGET0) $(DISTDIR)\$(TARGET)
・
42行目 $(TARGET0) : $(SRC) makefile ..\depend.mak
・
''↓''
1行目 include ../depend.mak
2行目 include ../rules.mak
・
39行目 $(DISTDIR)\$(TARGET) : $(TARGET0) ../depend.mak
40行目 copy /y $(TARGET0) $(DISTDIR)/$(TARGET)
・
42行目 $(TARGET0) : $(SRC) makefile ../depend.mak
・
-よし、では再びメイク。
~/src39/ankfont0/$ make
txt2bin.exe ibmank0.txt ankfont0.bin
make: txt2bin.exe: コマンドが見つかりませんでした
make: *** [ankfont0.bin] エラー 127
~/src39/ankfont0/$
-おや?こんどはこんなエラーが・・・
-なるほど。txt2bin.exe というコマンドが必要なのか。これ自...
-あ、なんだ!。ソースがあるじゃない! I.Takさんもたしか、...
~/src39/ankfont0/$ gcc -O2 -o txt2bin txt2bin.c
~/src39/ankfont0/$ ls
cvs/ makefile newstyle.txt txt2bin.c win31...
ibmank0.txt makefile~ txt2bin* txt2bin.exe
~/src39/ankfont0/$
-よし!OK。あとは makefile を直しておこう。
・
42行目 txt2bin.exe $(SRC) $@
・
''↓''
・
42行目 ./txt2bin $(SRC) $@
・
-おっと。それと、すぐ上のあたりの copy コマンドも、Linux...
・
40行目 copy /y $(TARGET0) $(DISTDIR)/$(TARGET)
・
''↓''
・
40行目 cp -f $(TARGET0) $(DISTDIR)/$(TARGET)
・
-よぉし!! これで、ここはOKみたいだ。make は、特にエラ...
***こんどは、sgg00lib!
-sgg00libもやってみよう。では、まず、移動。
~/src39/ankfont0/$ cd ../sgg00lib
~/src39/sgg00lib/$
-そんでもって、メイク。
~/src39/sgg00lib/$ make
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make: *** ターゲット `..\rules.mak' を make するルールが...
~/src39/sgg00lib/$
-うん、これは簡単だ。さっきと同じで、PATH区切り文字を直そ...
1行目 include ..\depend.mak
2行目 include ..\rules.mak
・
18行目 DIST_DIR = ..\lib
・
34行目 %.s : %.c ..\depend.mak
・
37行目 %.nas : %.s ..\depend.mak
・
40行目 %.obj : %.nas ..\depend.mak
・
43行目 %.i : %.ask makefile ..\depend.mak coffhead.ask
・
56行目 del $(DIST_DIR)\$(TARGET)
''↓''
1行目 include ../depend.mak
2行目 include ../rules.mak
・
18行目 DIST_DIR = ../lib
・
34行目 %.s : %.c ../depend.mak
・
37行目 %.nas : %.s ../depend.mak
・
40行目 %.obj : %.nas ../depend.mak
・
43行目 %.i : %.ask makefile ../depend.mak coffhead.ask
・
56行目 del $(DIST_DIR)/$(TARGET)
-よし。・・・・おや?。この makefile にも、for が使われて...
・
32行目 for %%i in ($(OBJS)) do echo %%i >> $(OPT)
・
・
56行目 for %%i in ($(OBJS)) do del %%i
for %%i in ($(C_OBJS:.obj=.s)) do del %%i
for %%i in ($(C_OBJS:.obj=.nas)) do del...
for %%i in ($(C_OBJS:.obj=.lst)) do del...
for %%i in ($(ASK_OBJS:.obj=.i)) do del...
for %%i in ($(ASK_OBJS:.obj=.3as)) do d...
for %%i in ($(ASK_OBJS:.obj=.nas)) do d...
# for %%i in ($(ASK_OBJS:.obj=.asm)) do d...
# for %%i in ($(ASK_OBJS:.obj=.obj)) do d...
for %%i in ($(ASK_OBJS:.obj=.lst)) do d...
# for %%i in ($(ASK_OBJS:.obj=.map)) do d...
# del *.lst
''↓''
・
32行目 for i in $(OBJS); do echo $$i >> $(OPT) ; done
・
・
56行目 for i in $(OBJS) ; do del %%i
for i in $(C_OBJS:.obj=.s) ; do del $$i...
for i in $(C_OBJS:.obj=.nas) ; do del $...
for i in $(C_OBJS:.obj=.lst) ; do del $...
for i in $(ASK_OBJS:.obj=.i) ; do del $...
for i in $(ASK_OBJS:.obj=.3as) ; do del...
for i in $(ASK_OBJS:.obj=.nas) ; do del...
# for %%i in ($(ASK_OBJS:.obj=.asm)) do d...
# for %%i in ($(ASK_OBJS:.obj=.obj)) do d...
for i in $(ASK_OBJS:.obj=.lst) ; do del...
# for %%i in ($(ASK_OBJS:.obj=.map)) do d...
# del *.lst
-さーて。これでいいかな? 再びメイク。
~/src39/sgg00lib/$ make
echo on > sysgg00.opt
for i in execcmd.obj execcmd0.obj execcmd1.obj fwinman.o...
; do echo $i >> sysgg00.opt ; done
cpp0 -P -DPCAT -DWIN9X -o execcmd.i execcmd.ask
make: cpp0: コマンドが見つかりませんでした
make: *** [execcmd.i] エラー 127
~/src39/sgg00lib/$
-・・・あら? cpp0 が見つからないって?
-cpp0.exe 自体はもちろん存在するが、これもどうせ Win32用...
-たぶん、 cpp でいいと思う。(ちと自身がない)
-こいつの定義は、この makefile ではなく、ひとつ上の rules...
-再びメイク。
~/src39/sgg00lib/$ make
golib00w out:sysgg00.lib execcmd.obj execcmd0.obj execcm...
fpokon.obj fdebug.obj
make: golib00w: コマンドが見つかりませんでした
make: *** [sysgg00.lib] エラー 127
~/src39/sgg00lib/$
-あちゃ! これは GO のコマンドだ。えーと・・ golib00w ...
-%%うーん・・・。これの代替は、おそらく linux では ld コ...
-例によって、I.Takさんから助け舟が!。ライブラリアンは、 ...
-まず、rules.mak
・
31行目 GOLIB = $(BIN_PATH)golib00w
・
''↓''
・
31行目 GOLIB = $(BIN_PATH)ar
・
-そんでもって、makefileの
・
27行目 $(GOLIB) out:$@ $(OBJS)
・
''↓''
・
27行目 $(GOLIB) rv $@ $(OBJS)
・
-に変更してみた。
-また、いくつかのコピーコマンドを修正
・
28行目 copy $@ $(DIST_DIR)
・
''↓''
・
28行目 cp $@ $(DIST_DIR)
・
-さて、どうなるか?
~/src39/sgg00lib/$ make
cpp -P -DPCAT -DWIN9X -o execcmd.i execcmd.ask
aska execcmd.i execcmd.3as
・
・
・
r - fwinman.obj
r - fpokon.obj
r - fdebug.obj
cp sysgg00.lib ../lib
~/src39/sgg00lib/$
-おぉぉ? なんかイケタっぽいぞよ!!
** pcatへ
-これはもう、だいたいパターンなので、まずは PATH区切り文...
1行目 include ..\depend.mak
2行目 include ..\rules.mak
・
29行目 %.bin : %.ask makefile ..\depend.mak
・
39行目 $(BASE) : $(BASE_NAS) makefile ..\depend.mak
''↓''
1行目 include ../depend.mak
2行目 include ../rules.mak
・
29行目 %.bin : %.ask makefile ../depend.mak
・
39行目 $(BASE) : $(BASE_NAS) makefile ../depend.mak
-さらに、 for の部分を直しておく。
・
・
46行目 for %%i in ($(BASE:.exe=.lst)) do del %%i
# for %%i in ($(BASE:.exe=.map)) do del %%i
for %%i in ($(ASK_OBJS)) do del %%i
# for %%i in ($(C_OBJS)) do del %%i
for %%i in ($(ASK_OBJS:.bin=.i)) do del...
for %%i in ($(ASK_OBJS:.bin=.3as)) do d...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
for %%i in ($(ASK_OBJS:.bin=.nas)) do d...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
for %%i in ($(ASK_OBJS:.bin=.lst)) do d...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
dist_clean:
# for %%i in ($(BASE:.exe=.obj)) do del %%i
for %%i in ($(BASE:.exe=.lst)) do del %%i
# for %%i in ($(BASE:.exe=.map)) do del %%i
# for %%i in ($(ASK_OBJS)) do del %%i
# for %%i in ($(C_OBJS)) do del %%i
for %%i in ($(ASK_OBJS:.bin=.i)) do del...
for %%i in ($(ASK_OBJS:.bin=.3as)) do d...
for %%i in ($(ASK_OBJS:.bin=.nas)) do d...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
# for %%i in ($(ASK_OBJS:.bin=.lst)) do d...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
''↓''
・
・
46行目 for i in $(BASE:.exe=.lst); do del $$i ...
# for %%i in ($(BASE:.exe=.map)) do del %%i
for i in $(ASK_OBJS); do del $$i ; done
# for %%i in ($(C_OBJS)) do del %%i
for i in $(ASK_OBJS:.bin=.i); do del $$...
done
for i in $(ASK_OBJS:.bin=.3as); do del ...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
for i in $(ASK_OBJS:.bin=.nas); do del ...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
for i in $(ASK_OBJS:.bin=.lst); do del ...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
dist_clean:
# for %%i in ($(BASE:.exe=.obj)) do del %%i
for i in $(BASE:.exe=.lst); do del $$i ...
# for %%i in ($(BASE:.exe=.map)) do del %%i
# for %%i in ($(ASK_OBJS)) do del %%i
# for %%i in ($(C_OBJS)) do del %%i
for i in $(ASK_OBJS:.bin=.i); do del $$...
done
for i in $(ASK_OBJS:.bin=.3as); do del ...
done
for i in $(ASK_OBJS:.bin=.nas); do del ...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
# for %%i in ($(ASK_OBJS:.bin=.lst)) do d...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
-さらに、 copyコマンドも書き換えておく。
・
37行目 copy $@ ..
・
41行目 copy $@ ..
・
''↓''
・
37行目 cp $@ ..
・
41行目 cp $@ ..
・
-うん、これでとりあえずエラーは出なくなった。ここはOKって...
**再び 親ディレクトリへ
-さて、これでやっとサブディレクトリは片付いたようだ。親デ...
~/src39/pcat/$ cd ..
~/src39/$ make
for i in ankfont0 sgg00lib pcat; do make -C $i; done
make[1]: 入ります ディレクトリ `src39/ankfont0'
make[1]: `../ankfont0.bin' は更新済です
make[1]: 出ます ディレクトリ `src39/ankfont0'
make[1]: 入ります ディレクトリ `src39/sgg00lib'
make[1]: `ALL' に対して行うべき事はありません。
make[1]: 出ます ディレクトリ `src39/sgg00lib'
make[1]: 入ります ディレクトリ `src39/pcat'
make[1]: `ALL' に対して行うべき事はありません。
make[1]: 出ます ディレクトリ `src39/pcat'
make OSASK.EXE
make[1]: 入ります ディレクトリ `src39'
make[1]: *** `OSASK.EXE' に必要なターゲット `boot32.bin'...
make[1]: 出ます ディレクトリ `src39'
make: *** [ALL] エラー 2
~/src39/$
-ふうむ・・・。もう一歩らしい。ええと、どこかな?
・
64行目 for %%i in ($(LINK_OBJS)) do echo %%i >> $(OSA...
・
''↓''
・
64行目 for i in $(LINK_OBJS) ; do echo $$i >> $(OSALI...
・
-とりあえずこのへんを・・
-うーん・・うまくいかないなぁ・・・あれ?
-ここでふと思い出す。たしか、この makefile って、生成する...
-確認してみた。やっぱし・・・。 pcat とか、vmware とか、...
~/src39/$ make pcat
depend.mak:1: *** 分離記号を欠いています. 中止。
~/src39/$
-あら?なんじゃ?これ。
-ええと・・・。はっはぁ・・・なるほど。depend.mak は、自...
・
63行目 echo on > $(OSALINK_OPT)
・
100行目 echo on > depend.mak
・
''↓''
・
63行目 echo -n > $(OSALINK_OPT)
・
100行目 echo -n > depend.mak
・
-これで、再びメイク。
~/src39/$ make pcat
echo > depend.mak
echo #DESIGN = WIN9X# Win9x style>> depend.mak
echo #DESIGN = WIN31# Win3.1 style>> depend.mak
echo #DESIGN = TMENU# T-OSASK>> depend.mak
・
・
・
echo > osalink1.opt
for i in base.exe boot32.bin ankfont0.tek init.tek tapi0...
papi0.tek winman0.tek pokon0.tek timerdrv.tek keymos0.te...
vgadrv0.tek decode0.tek vesa8.tek vesa16.tek vesa32.tek ...
osalink1.opt;done
make[2]: *** `OSASK.EXE' に必要なターゲット `boot32.bin'...
りません. 中止。
make[2]: 出ます ディレクトリ `src39'
make[1]: *** [ALL] エラー 2
make[1]: 出ます ディレクトリ `src39'
make: *** [pcat] エラー 2
~/src39/$
-ふうむ・・・。これはどういうことかな???
-あぁ・・。なるほど。I.Takさんが指摘してくれた、osalink1 ...
-tolset05のソースを持ってきて、 osalink1 をメイクしてみる。
-おひゃ! gcc -O2 -o osalink1 osalink1.c で一発じゃん。...
-あれえ? 結果が変わんないや。これ以外かな?
-関係ないかもしれないけど、一箇所発見。 osalink1 は、無オ...
・
60行目 $(OSALINK)
・
''↓''
・
60行目 $(OSALINK) $(OSALINK_OPT)
・
-ううん・・・ちょっとクサイところがあるぞ。こっちの makef...
・
127行目 %.i : %.ask .\depend.mak
・
142行目 %.s : %.c .\depend.mak
・
145行目 %.nas : %.s .\depend.mak
・
148行目 %.obj : %.nas .\depend.mak
・
''↓''
・
127行目 %.i : %.ask ./depend.mak
・
142行目 %.s : %.c ./depend.mak
・
145行目 %.nas : %.s ./depend.mak
・
148行目 %.obj : %.nas ./depend.mak
・
-お?なんか当りっぽいぞ!。メイクが進んでいる・・・・ん?...
・
・
aska init.i init.3as
naskcnv0 -l -s init.3as init.nas
nask init.nas init.bin init.lst
bim2bin3 -osacmp input:init.bin output:init.tek
cpp -P -DPCAT -DWIN9X -o tapi0.i tapi0.ask
aska tapi0.i tapi0.3as
naskcnv0 -l -s tapi0.3as tapi0.nas
nask tapi0.nas tapi0.bin tapi0.lst
bim2bin3 -osacmp input:tapi0.bin output:tapi0.tek
cpp -P -DPCAT -DWIN9X -o pioneer0.i pioneer0.ask
aska pioneer0.i pioneer0.3as
-あらら、ここのところで止まっちゃってるぞ?念のため、待っ...
-ちょっとわかってきた。*.ask から、*.i を作り出すのに cpp...
-うーん、原因と対策法が大体わかったけど、スマートなやり方...
・
・
128行目 %.i : %.ask ./depend.mak
$(PREPROCESSOR) $(PREPROCESSOR_FLAGS) ...
・
・
''↓''
・
・
128行目 %.i : %.ask ./depend.mak
$(PREPROCESSOR) $(PREPROCESSOR_FLAGS) ...
tr -d "\015" < $*.it > $*.i ; rm $*.it
・
-うーん・・・ちょっとだめだなぁ・・。どうも cpp が吐き出...
~/src39/$ make pcat
echo -n > depend.mak
echo #DESIGN = WIN9X# Win9x style>> depend.mak
echo #DESIGN = WIN31# Win3.1 style>> depend.mak
・
・
・
nask kjpegls2.nas kjpegls2.obj kjpegls2.lst
nask betaclip.nas betaclip.obj betaclip.lst
nask bmp2beta.nas bmp2beta.obj bmp2beta.lst
obj2bim3 @osask.rul out:winman0.bim stack:8k winman0.obj...
betaclip.obj bmp2beta.obj
Rule file error : unknown file format : lib/sysgg00.lib
make[2]: *** [winman0.bim] エラー 7
rm boot32.nas boot32.i boot32.3as winman0.nas kjpegls2.n...
make[2]: 出ます ディレクトリ `/home/hideyosi/osaskma/src...
make[1]: *** [ALL] エラー 2
make[1]: 出ます ディレクトリ `/home/hideyosi/osaskma/src...
make: *** [pcat] エラー 2
-またまた新しいエラーだなぁ。なになに? lib/sysgg00.lib ...
-うむむ??。どうも最初のほうでやったコマンドの置き換えが...
・
27行目 $(GOLIB) rv $@ $(OBJS)
・
-うむむ? この、 rv のオプションがまずいらしいなぁ。え...
-どうも、ライブラリの形式が違っているようだなぁ。ar と go...
-うむむ・・ちょっとこれは調査しなくては・・・。
-この、ライブラリアンの形式についてだが、ちょっと思いつき...
-はたして、このOSASK.EXEは、動くのだろうか・・・・
-残念ながら、こうして出来上がったOSASKは起動することがで...
**鮮やか 軽やか!オタスケマン登場!
-そうこうしているうちに、I.TakさんやKタンから「助けにきっ...
-まずは最初の。 ar の書き方を教えてもらったので、これを実...
sgg00lib/makefile
・
27行目 $(GOLIB) rv $@ $(OBJS)
・
''↓''
・
27行目 $(GOLIB) rc $@ $(OBJS) ; ranlib $@
・
-とやってみて、コンパイルしてみる。
-・・・うーん・・・・。残念ながら、これはまったく結果が変...
-今度は、Kタンが移植してくれた golib00 に挑戦してみる。
-おぉぉ!!! コンパイルが実に素直に通ってしまった。 OS...
-うぐぐぐぐ・・・・残念ながら、このOSASK.EXE も起動しない...
**秒読み取り消し!!!
-とりあえず、コンパイルを通すことには成功したようだ。第一...
-さて、それでは、なぜ出来あがったOSASK.EXEが起動しないの...
-できあがったOSASKは、Win32で作ったもの(もちろん稼動する...
-まず、OSASK.EXE を作り上げているものを比べてみる。base.e...
--base.exe
--boot32.bin
--ankfont0.tek
--decode0.tek
--fdcdrv0.tek
--init.tek
--keymos0.tek
--papi0.tek
--pioneer0.tek
--pokon0.tek ・・・・ん? こいつ、サイズが違うぞ!
--tapi0.tek
--timerdrv.tek
--vesa8.tek
--vesa16.tek
--vesa32.tek
--vgadrv0.tek
--winman0.tek ・・・・あ、これもだ!
-上記の pokon0.tek と winman0.tek 以外は、サイズも内容...
-うむ・・・・とりあえず、pokon0.tek と winman0.tek から...
-まず、Kタンの提案通り pokon0.tek と winman0.tek を、Win3...
--・・・あっさり動いてしまった。っということは、とりあえ...
-次に、その前の段階。pokon0.bin と winman0.bin を入れ替...
-うおぉぉ!! I.Takさんの修正で動いてしまったぁぁぁ!!...
-・・・つーことは・・・あれ? とりあえずこれ、成功してし...
-なんと、Kタンが見るに見かねて GO の移植を表明???。う...
-えーと・・・。とりあえず、ここまでで出来上がった''Linux...
**新展開! GO が移植された!?
-ここまでは、Linux上のCコンパイラ(gcc。私が使ってたのはV...
-うっわぁぁ・・・。ちょっとだめだ。 GOをLinuxで動かすには...
-シャクらしいが、「とにもかくにもとりあえず」LinuxでOSASK...
-えーと。そんな感じなので(どんな感じじゃ)暫定パッチを公...
-まず、これをゲットしてください。 http://hideyosi.zive.n...
-COLOR(#ff0000){すみません!書き忘れていましたが、上のパ...
~/$ lha -x make39.lzh
~/$ cd src39
~/src39/$ patch -p1 < ../linonosask.patch
-っとまあ、これでパッチは完了ですが、さらに
~/src39/$ cd ankfont0
~/src39/ankfont0/$ gcc -O2 -o txt2bin txt2bin.c
~/src39/ankfont0/$ cd ..
~/src39/$
-が必要です。
-また、今回Kタンが作ってくれた [[golib00w:http://osask.ne...
-さて、そんなこんなで私の遊びにつきあっていただいた方々、...
-GO がほぼ完全に移植されたら、それらをワンパックにして、...
**まとめ。 なぜ、GOの移植を待たねばならないのか? gccで...
-まず、現時点では川合堂ブランドのソフトはほとんど問題なく...
-しかし、[[Linux上でOSASK用バイナリを生成しよう]]でもわか...
-また、今回の移植で gccのCPP にもちょっとした問題がありま...
-ライブラリアンも問題です。私の調査不足かもしれませんが、...
-I.Takさんが発見してくれた winman0 の問題は、どうも gcc ...
-これらを無理にこね回すより、やはり GO を移植したほうが結...
----
-ライブラリアンはarです。がんばれ! -- [[I.Tak.]] SIZE(10)...
-ライブラリを作るのにはarとranlibを使います。 ar rc $@ $(...
-arもranlibもでかいので、即興でgolib00をstdc版にしてみま...
-とりあえずCソース由来以外は、1バイトの差もなくwin32上でm...
-pokonとwinmanが違うのは当然です。この2つはC言語で書かれ...
-仮に中身も同じだとしたら、今度はWindows上で作ったpokon.0...
-私もAT,98,TOWNSで作って動かしましたけど, 動きませんでし...
-↑読みました。一部のコードがデータセグメントに入ってるよ...
-static JPEG jpeg; という行を ルートスコープ (関数の外) ...
-gccのバグを回避するためにwinman0.cを書き直すっていうのは...
-とりあえずできました。[OSASK 6399]を見てください。>GO移...
-GOがLinuxで動けば、バグ回避だけではなく1バイトも違わない...
-1バイトも違わないってありますか? -- [[(´_ゝ`)]] SIZE...
-はい、ありますよ。違うものができる理由がありませんから。...
-へぇー -- [[(´_ゝ`)]] SIZE(10){2003-08-17 (日) 20:23:...
-セグメンテーション違反です 。。。なんでだろう。。。 -- [...
-パッチはまだか。がんばってくださいね。pcatの中でnask fdc...
-よく分かりませんが、そのnaskはwin32版をそのまま使ってい...
-ええと何がしゃくだったのかを報告しておくと、gccが間違っ...
-すみませんでした。Red Hat9です。naskはgcc3.2.2,2.96でコ...
-見えにくいので訂正。gcc-3.2.2でコンパイルしたもの、gcc-2...
-touchでごまかしてみたところ、vgadrv0やvesa8などでもSegV...
-うーんと、naskにかける.nasソースは、win32上で生成したも...
-win32と同じかどうかはわかりませんが、timedrv,keymos0とか...
-パッチ使ったのにSegV...Red Hat9でビルドできた人いないん...
-えぇ!? 私のパッチでもエラーがでましたか? ううむ・・・...
-顔文字さん、よかったらちょっとお付き合いくださいませんか...
-ASKA、nask,naskcnv0をgcc296でビルドしなおしてもだめでし...
-ちと確認ですば、cc1は例の方法で作られましたか? 実は、...
-それと、もしよかったら、現状(メイクが途中で失敗している...
-はい。つか、pcatでmakeしてるとcc1関係なさそうなんですが...
-CGIに誤りがありますっていわれたので、ls -R src39はだめで...
-http://hideyosi.zive.net/goset/goset-0.0.1-0hd1.i386.rpm...
-↑(´_ゝ`)です。 -- [[(´_ゝ`)]] SIZE(10){2003-08-18 ...
-うーん・・・。たしかに、かなり不可解なエラーですね。nask...
-あら? いけね。ほんとうだ。動かしちゃったんだ。わすれて...
-GOのcpp0とASKAとの相性がどうかということに関してだけはち...
-顔文字さんの報告だけでは、他の人にはどうにもできないよう...
-すみませんでした。以後気をつけます。いちおうlzhをうpしま...
-hideyosiさんのgosetバイナリではうまくいきました!ありがと...
-naskの問題みたいです。/usr/bin/strip: /var/tmp/goset-0.0...
-をつかってみたら、SegVしました。Red Hatでビルドしたnask...
-あ、普通にgolib00wじゃなくてgolib00でいいんですね。depen...
-Bochsでも、起動するときとしないときがあるようです。リセ...
-実機VAIO+iplfffで問題なく起動しました!本当にありがとう...
-意見:makefile中の、echo BOCHS = 13>> depend.mak は、ech...
-echo #DESIGN = WIN31#なども、echo '#DESIGN = WIN31#'とす...
-Windows のコマンドプロンプトでは、>> の前にスペースを入...
-顔文字さん、レポートありがとうございます。やはり、どうも...
-私もCもアセンブラも全然だめで、えらそうに書いてますが、...
-余談ですが、そちらは、「顔文字さん」でしょうか?それとも...
-なんとよんでもよいですけど、「ふーん」ではないです。「流...
-気のせいかも知れないですけど、WIN9X以外のスタイルでは、B...
-hideyosiさんのnaskと僕のnaskで確認しました。nask iplfff0...
-本当に済みません。勘違いしていました。naskじゃなくてnasm...
-sedとshとpatchを駆使 (どこがじゃ) して一発パッチを作って...
-いいえ、それは違います。実は僕がsrc39aのinit.askを間違え...
-/.に載ったようです -- SIZE(10){2003-08-20 (水) 01:16:26}
-URLはこちらです。 http://slashdot.jp/developers/03/08/19...
-make4lin.tar.gzでは、txt2binにパスを通したり、$(BIN_PATH...
-たくさんのアドバイスやレポート、ほんとうにどうもありがと...
終了行:
TITLE:x
-COLOR(#ff0000){当ページもだいぶガチャガチャになってしま...
~
~
*このページの前提
-なぜ、そんなことをする?
--やりたいから
-意味はあるのか?
--関知しない
-だれかの・なにかの役にたつのか?
--関知しない
-そもそも、なぜここにあるのか?
--ここに置きたかったから。最終的にはどこかにまとめて移設...
*さて、それでははじめよう。
**必要な環境を準備する。
-Linux環境
--まず、当然ですがLinuxの環境がいります。私の場合は VineL...
--2003/08/14現在で、すべてのアップグレードを行っています
--カーネルは 2.4.21 を自環境に合わせてコンパイルしてあり...
-本Wikiの[[Linux上でOSASK用バイナリを生成しよう]]を実行し...
--本Wikiの[[ASKA]]から、テストバージョンのASKAを導入して...
--同じく本Wikiの[[ASKA]]から、2003/08/14 にI.Takさんが移...
--小柳さんのページから、2003/08/14現在 最新のVer.3.9 のソ...
--以上でOKかな?
--tolset05 (のソースsrcset05) に入ってるosalink1もインス...
**実験開始!
-まず、ソースを解凍する。
~/$ lha -x make39.lzh
~/$ cd src39
~/src39$
-とりあえず、一発、メイクをかけてみよう。
~/src39$ make
for %%i in (ankfont0 sgg00lib pcat) do make -C %%i
/bin/sh: -c: line 1: syntax error near unexpected token ...
/bin/sh: -c: line 1: `for %%i in (ankfont0 sgg00lib pcat...
make: *** [ALL] エラー 2
~/src39$
-ふむふむ・・・。どうも、makefile の56行目の for の構文が...
''makefile 56行目''
・
・
ALL :
for %%i in ($(SUBDIRS)) do $(MAKE) -C %%i
$(MAKE) $(TARGET)
・
・
''↓''
・
・
ALL :
for i in $(SUBDIRS); do $(MAKE) -C $$i; done
$(MAKE) $(TARGET)
・
・
-これでメイク再び。こんどはさっきと違うエラーが出てくる。
~/src39$ make
for i in ankfont0 sgg00lib pcat; do make -C $i; done
make[1]: 入ります ディレクトリ `src39/ankfont0'
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make[1]: *** ターゲット `..\rules.mak' を make するルー...
make[1]: 出ます ディレクトリ `src39/ankfont0'
make[1]: 入ります ディレクトリ `src39/sgg00lib'
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make[1]: *** ターゲット `..\rules.mak' を make するルー...
make[1]: 出ます ディレクトリ `src39/sgg00lib'
make[1]: 入ります ディレクトリ `src39/pcat'
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make[1]: *** ターゲット `..\rules.mak' を make するルー...
make[1]: 出ます ディレクトリ `src39/pcat'
make: *** [ALL] エラー 2
~/src39$
-最初に直した部分を見てもわかるが、OSASKのソースはいくつ...
-上記のエラーを見ると、ankfont0/ sgg00lib/ pcat/ にある、...
***さっそく、ankfont0/ に降りて makefile を覗いてみる。
-まず、すぐに分かったのが パス区切り文字 。元々のソースは...
1行目 include ..\depend.mak
2行目 include ..\rules.mak
・
39行目 $(DISTDIR)\$(TARGET) : $(TARGET0) ..\depend.mak
40行目 copy /y $(TARGET0) $(DISTDIR)\$(TARGET)
・
42行目 $(TARGET0) : $(SRC) makefile ..\depend.mak
・
''↓''
1行目 include ../depend.mak
2行目 include ../rules.mak
・
39行目 $(DISTDIR)\$(TARGET) : $(TARGET0) ../depend.mak
40行目 copy /y $(TARGET0) $(DISTDIR)/$(TARGET)
・
42行目 $(TARGET0) : $(SRC) makefile ../depend.mak
・
-よし、では再びメイク。
~/src39/ankfont0/$ make
txt2bin.exe ibmank0.txt ankfont0.bin
make: txt2bin.exe: コマンドが見つかりませんでした
make: *** [ankfont0.bin] エラー 127
~/src39/ankfont0/$
-おや?こんどはこんなエラーが・・・
-なるほど。txt2bin.exe というコマンドが必要なのか。これ自...
-あ、なんだ!。ソースがあるじゃない! I.Takさんもたしか、...
~/src39/ankfont0/$ gcc -O2 -o txt2bin txt2bin.c
~/src39/ankfont0/$ ls
cvs/ makefile newstyle.txt txt2bin.c win31...
ibmank0.txt makefile~ txt2bin* txt2bin.exe
~/src39/ankfont0/$
-よし!OK。あとは makefile を直しておこう。
・
42行目 txt2bin.exe $(SRC) $@
・
''↓''
・
42行目 ./txt2bin $(SRC) $@
・
-おっと。それと、すぐ上のあたりの copy コマンドも、Linux...
・
40行目 copy /y $(TARGET0) $(DISTDIR)/$(TARGET)
・
''↓''
・
40行目 cp -f $(TARGET0) $(DISTDIR)/$(TARGET)
・
-よぉし!! これで、ここはOKみたいだ。make は、特にエラ...
***こんどは、sgg00lib!
-sgg00libもやってみよう。では、まず、移動。
~/src39/ankfont0/$ cd ../sgg00lib
~/src39/sgg00lib/$
-そんでもって、メイク。
~/src39/sgg00lib/$ make
makefile:1: ..\depend.mak: そのようなファイルやディレク...
makefile:2: ..\rules.mak: そのようなファイルやディレクト...
make: *** ターゲット `..\rules.mak' を make するルールが...
~/src39/sgg00lib/$
-うん、これは簡単だ。さっきと同じで、PATH区切り文字を直そ...
1行目 include ..\depend.mak
2行目 include ..\rules.mak
・
18行目 DIST_DIR = ..\lib
・
34行目 %.s : %.c ..\depend.mak
・
37行目 %.nas : %.s ..\depend.mak
・
40行目 %.obj : %.nas ..\depend.mak
・
43行目 %.i : %.ask makefile ..\depend.mak coffhead.ask
・
56行目 del $(DIST_DIR)\$(TARGET)
''↓''
1行目 include ../depend.mak
2行目 include ../rules.mak
・
18行目 DIST_DIR = ../lib
・
34行目 %.s : %.c ../depend.mak
・
37行目 %.nas : %.s ../depend.mak
・
40行目 %.obj : %.nas ../depend.mak
・
43行目 %.i : %.ask makefile ../depend.mak coffhead.ask
・
56行目 del $(DIST_DIR)/$(TARGET)
-よし。・・・・おや?。この makefile にも、for が使われて...
・
32行目 for %%i in ($(OBJS)) do echo %%i >> $(OPT)
・
・
56行目 for %%i in ($(OBJS)) do del %%i
for %%i in ($(C_OBJS:.obj=.s)) do del %%i
for %%i in ($(C_OBJS:.obj=.nas)) do del...
for %%i in ($(C_OBJS:.obj=.lst)) do del...
for %%i in ($(ASK_OBJS:.obj=.i)) do del...
for %%i in ($(ASK_OBJS:.obj=.3as)) do d...
for %%i in ($(ASK_OBJS:.obj=.nas)) do d...
# for %%i in ($(ASK_OBJS:.obj=.asm)) do d...
# for %%i in ($(ASK_OBJS:.obj=.obj)) do d...
for %%i in ($(ASK_OBJS:.obj=.lst)) do d...
# for %%i in ($(ASK_OBJS:.obj=.map)) do d...
# del *.lst
''↓''
・
32行目 for i in $(OBJS); do echo $$i >> $(OPT) ; done
・
・
56行目 for i in $(OBJS) ; do del %%i
for i in $(C_OBJS:.obj=.s) ; do del $$i...
for i in $(C_OBJS:.obj=.nas) ; do del $...
for i in $(C_OBJS:.obj=.lst) ; do del $...
for i in $(ASK_OBJS:.obj=.i) ; do del $...
for i in $(ASK_OBJS:.obj=.3as) ; do del...
for i in $(ASK_OBJS:.obj=.nas) ; do del...
# for %%i in ($(ASK_OBJS:.obj=.asm)) do d...
# for %%i in ($(ASK_OBJS:.obj=.obj)) do d...
for i in $(ASK_OBJS:.obj=.lst) ; do del...
# for %%i in ($(ASK_OBJS:.obj=.map)) do d...
# del *.lst
-さーて。これでいいかな? 再びメイク。
~/src39/sgg00lib/$ make
echo on > sysgg00.opt
for i in execcmd.obj execcmd0.obj execcmd1.obj fwinman.o...
; do echo $i >> sysgg00.opt ; done
cpp0 -P -DPCAT -DWIN9X -o execcmd.i execcmd.ask
make: cpp0: コマンドが見つかりませんでした
make: *** [execcmd.i] エラー 127
~/src39/sgg00lib/$
-・・・あら? cpp0 が見つからないって?
-cpp0.exe 自体はもちろん存在するが、これもどうせ Win32用...
-たぶん、 cpp でいいと思う。(ちと自身がない)
-こいつの定義は、この makefile ではなく、ひとつ上の rules...
-再びメイク。
~/src39/sgg00lib/$ make
golib00w out:sysgg00.lib execcmd.obj execcmd0.obj execcm...
fpokon.obj fdebug.obj
make: golib00w: コマンドが見つかりませんでした
make: *** [sysgg00.lib] エラー 127
~/src39/sgg00lib/$
-あちゃ! これは GO のコマンドだ。えーと・・ golib00w ...
-%%うーん・・・。これの代替は、おそらく linux では ld コ...
-例によって、I.Takさんから助け舟が!。ライブラリアンは、 ...
-まず、rules.mak
・
31行目 GOLIB = $(BIN_PATH)golib00w
・
''↓''
・
31行目 GOLIB = $(BIN_PATH)ar
・
-そんでもって、makefileの
・
27行目 $(GOLIB) out:$@ $(OBJS)
・
''↓''
・
27行目 $(GOLIB) rv $@ $(OBJS)
・
-に変更してみた。
-また、いくつかのコピーコマンドを修正
・
28行目 copy $@ $(DIST_DIR)
・
''↓''
・
28行目 cp $@ $(DIST_DIR)
・
-さて、どうなるか?
~/src39/sgg00lib/$ make
cpp -P -DPCAT -DWIN9X -o execcmd.i execcmd.ask
aska execcmd.i execcmd.3as
・
・
・
r - fwinman.obj
r - fpokon.obj
r - fdebug.obj
cp sysgg00.lib ../lib
~/src39/sgg00lib/$
-おぉぉ? なんかイケタっぽいぞよ!!
** pcatへ
-これはもう、だいたいパターンなので、まずは PATH区切り文...
1行目 include ..\depend.mak
2行目 include ..\rules.mak
・
29行目 %.bin : %.ask makefile ..\depend.mak
・
39行目 $(BASE) : $(BASE_NAS) makefile ..\depend.mak
''↓''
1行目 include ../depend.mak
2行目 include ../rules.mak
・
29行目 %.bin : %.ask makefile ../depend.mak
・
39行目 $(BASE) : $(BASE_NAS) makefile ../depend.mak
-さらに、 for の部分を直しておく。
・
・
46行目 for %%i in ($(BASE:.exe=.lst)) do del %%i
# for %%i in ($(BASE:.exe=.map)) do del %%i
for %%i in ($(ASK_OBJS)) do del %%i
# for %%i in ($(C_OBJS)) do del %%i
for %%i in ($(ASK_OBJS:.bin=.i)) do del...
for %%i in ($(ASK_OBJS:.bin=.3as)) do d...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
for %%i in ($(ASK_OBJS:.bin=.nas)) do d...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
for %%i in ($(ASK_OBJS:.bin=.lst)) do d...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
dist_clean:
# for %%i in ($(BASE:.exe=.obj)) do del %%i
for %%i in ($(BASE:.exe=.lst)) do del %%i
# for %%i in ($(BASE:.exe=.map)) do del %%i
# for %%i in ($(ASK_OBJS)) do del %%i
# for %%i in ($(C_OBJS)) do del %%i
for %%i in ($(ASK_OBJS:.bin=.i)) do del...
for %%i in ($(ASK_OBJS:.bin=.3as)) do d...
for %%i in ($(ASK_OBJS:.bin=.nas)) do d...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
# for %%i in ($(ASK_OBJS:.bin=.lst)) do d...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
''↓''
・
・
46行目 for i in $(BASE:.exe=.lst); do del $$i ...
# for %%i in ($(BASE:.exe=.map)) do del %%i
for i in $(ASK_OBJS); do del $$i ; done
# for %%i in ($(C_OBJS)) do del %%i
for i in $(ASK_OBJS:.bin=.i); do del $$...
done
for i in $(ASK_OBJS:.bin=.3as); do del ...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
for i in $(ASK_OBJS:.bin=.nas); do del ...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
for i in $(ASK_OBJS:.bin=.lst); do del ...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
dist_clean:
# for %%i in ($(BASE:.exe=.obj)) do del %%i
for i in $(BASE:.exe=.lst); do del $$i ...
# for %%i in ($(BASE:.exe=.map)) do del %%i
# for %%i in ($(ASK_OBJS)) do del %%i
# for %%i in ($(C_OBJS)) do del %%i
for i in $(ASK_OBJS:.bin=.i); do del $$...
done
for i in $(ASK_OBJS:.bin=.3as); do del ...
done
for i in $(ASK_OBJS:.bin=.nas); do del ...
# for %%i in ($(ASK_OBJS:.bin=.asm)) do d...
# for %%i in ($(ASK_OBJS:.bin=.obj)) do d...
# for %%i in ($(ASK_OBJS:.bin=.lst)) do d...
# for %%i in ($(ASK_OBJS:.bin=.map)) do d...
# for %%i in ($(ASK_OBJS:.bin=.exe)) do d...
-さらに、 copyコマンドも書き換えておく。
・
37行目 copy $@ ..
・
41行目 copy $@ ..
・
''↓''
・
37行目 cp $@ ..
・
41行目 cp $@ ..
・
-うん、これでとりあえずエラーは出なくなった。ここはOKって...
**再び 親ディレクトリへ
-さて、これでやっとサブディレクトリは片付いたようだ。親デ...
~/src39/pcat/$ cd ..
~/src39/$ make
for i in ankfont0 sgg00lib pcat; do make -C $i; done
make[1]: 入ります ディレクトリ `src39/ankfont0'
make[1]: `../ankfont0.bin' は更新済です
make[1]: 出ます ディレクトリ `src39/ankfont0'
make[1]: 入ります ディレクトリ `src39/sgg00lib'
make[1]: `ALL' に対して行うべき事はありません。
make[1]: 出ます ディレクトリ `src39/sgg00lib'
make[1]: 入ります ディレクトリ `src39/pcat'
make[1]: `ALL' に対して行うべき事はありません。
make[1]: 出ます ディレクトリ `src39/pcat'
make OSASK.EXE
make[1]: 入ります ディレクトリ `src39'
make[1]: *** `OSASK.EXE' に必要なターゲット `boot32.bin'...
make[1]: 出ます ディレクトリ `src39'
make: *** [ALL] エラー 2
~/src39/$
-ふうむ・・・。もう一歩らしい。ええと、どこかな?
・
64行目 for %%i in ($(LINK_OBJS)) do echo %%i >> $(OSA...
・
''↓''
・
64行目 for i in $(LINK_OBJS) ; do echo $$i >> $(OSALI...
・
-とりあえずこのへんを・・
-うーん・・うまくいかないなぁ・・・あれ?
-ここでふと思い出す。たしか、この makefile って、生成する...
-確認してみた。やっぱし・・・。 pcat とか、vmware とか、...
~/src39/$ make pcat
depend.mak:1: *** 分離記号を欠いています. 中止。
~/src39/$
-あら?なんじゃ?これ。
-ええと・・・。はっはぁ・・・なるほど。depend.mak は、自...
・
63行目 echo on > $(OSALINK_OPT)
・
100行目 echo on > depend.mak
・
''↓''
・
63行目 echo -n > $(OSALINK_OPT)
・
100行目 echo -n > depend.mak
・
-これで、再びメイク。
~/src39/$ make pcat
echo > depend.mak
echo #DESIGN = WIN9X# Win9x style>> depend.mak
echo #DESIGN = WIN31# Win3.1 style>> depend.mak
echo #DESIGN = TMENU# T-OSASK>> depend.mak
・
・
・
echo > osalink1.opt
for i in base.exe boot32.bin ankfont0.tek init.tek tapi0...
papi0.tek winman0.tek pokon0.tek timerdrv.tek keymos0.te...
vgadrv0.tek decode0.tek vesa8.tek vesa16.tek vesa32.tek ...
osalink1.opt;done
make[2]: *** `OSASK.EXE' に必要なターゲット `boot32.bin'...
りません. 中止。
make[2]: 出ます ディレクトリ `src39'
make[1]: *** [ALL] エラー 2
make[1]: 出ます ディレクトリ `src39'
make: *** [pcat] エラー 2
~/src39/$
-ふうむ・・・。これはどういうことかな???
-あぁ・・。なるほど。I.Takさんが指摘してくれた、osalink1 ...
-tolset05のソースを持ってきて、 osalink1 をメイクしてみる。
-おひゃ! gcc -O2 -o osalink1 osalink1.c で一発じゃん。...
-あれえ? 結果が変わんないや。これ以外かな?
-関係ないかもしれないけど、一箇所発見。 osalink1 は、無オ...
・
60行目 $(OSALINK)
・
''↓''
・
60行目 $(OSALINK) $(OSALINK_OPT)
・
-ううん・・・ちょっとクサイところがあるぞ。こっちの makef...
・
127行目 %.i : %.ask .\depend.mak
・
142行目 %.s : %.c .\depend.mak
・
145行目 %.nas : %.s .\depend.mak
・
148行目 %.obj : %.nas .\depend.mak
・
''↓''
・
127行目 %.i : %.ask ./depend.mak
・
142行目 %.s : %.c ./depend.mak
・
145行目 %.nas : %.s ./depend.mak
・
148行目 %.obj : %.nas ./depend.mak
・
-お?なんか当りっぽいぞ!。メイクが進んでいる・・・・ん?...
・
・
aska init.i init.3as
naskcnv0 -l -s init.3as init.nas
nask init.nas init.bin init.lst
bim2bin3 -osacmp input:init.bin output:init.tek
cpp -P -DPCAT -DWIN9X -o tapi0.i tapi0.ask
aska tapi0.i tapi0.3as
naskcnv0 -l -s tapi0.3as tapi0.nas
nask tapi0.nas tapi0.bin tapi0.lst
bim2bin3 -osacmp input:tapi0.bin output:tapi0.tek
cpp -P -DPCAT -DWIN9X -o pioneer0.i pioneer0.ask
aska pioneer0.i pioneer0.3as
-あらら、ここのところで止まっちゃってるぞ?念のため、待っ...
-ちょっとわかってきた。*.ask から、*.i を作り出すのに cpp...
-うーん、原因と対策法が大体わかったけど、スマートなやり方...
・
・
128行目 %.i : %.ask ./depend.mak
$(PREPROCESSOR) $(PREPROCESSOR_FLAGS) ...
・
・
''↓''
・
・
128行目 %.i : %.ask ./depend.mak
$(PREPROCESSOR) $(PREPROCESSOR_FLAGS) ...
tr -d "\015" < $*.it > $*.i ; rm $*.it
・
-うーん・・・ちょっとだめだなぁ・・。どうも cpp が吐き出...
~/src39/$ make pcat
echo -n > depend.mak
echo #DESIGN = WIN9X# Win9x style>> depend.mak
echo #DESIGN = WIN31# Win3.1 style>> depend.mak
・
・
・
nask kjpegls2.nas kjpegls2.obj kjpegls2.lst
nask betaclip.nas betaclip.obj betaclip.lst
nask bmp2beta.nas bmp2beta.obj bmp2beta.lst
obj2bim3 @osask.rul out:winman0.bim stack:8k winman0.obj...
betaclip.obj bmp2beta.obj
Rule file error : unknown file format : lib/sysgg00.lib
make[2]: *** [winman0.bim] エラー 7
rm boot32.nas boot32.i boot32.3as winman0.nas kjpegls2.n...
make[2]: 出ます ディレクトリ `/home/hideyosi/osaskma/src...
make[1]: *** [ALL] エラー 2
make[1]: 出ます ディレクトリ `/home/hideyosi/osaskma/src...
make: *** [pcat] エラー 2
-またまた新しいエラーだなぁ。なになに? lib/sysgg00.lib ...
-うむむ??。どうも最初のほうでやったコマンドの置き換えが...
・
27行目 $(GOLIB) rv $@ $(OBJS)
・
-うむむ? この、 rv のオプションがまずいらしいなぁ。え...
-どうも、ライブラリの形式が違っているようだなぁ。ar と go...
-うむむ・・ちょっとこれは調査しなくては・・・。
-この、ライブラリアンの形式についてだが、ちょっと思いつき...
-はたして、このOSASK.EXEは、動くのだろうか・・・・
-残念ながら、こうして出来上がったOSASKは起動することがで...
**鮮やか 軽やか!オタスケマン登場!
-そうこうしているうちに、I.TakさんやKタンから「助けにきっ...
-まずは最初の。 ar の書き方を教えてもらったので、これを実...
sgg00lib/makefile
・
27行目 $(GOLIB) rv $@ $(OBJS)
・
''↓''
・
27行目 $(GOLIB) rc $@ $(OBJS) ; ranlib $@
・
-とやってみて、コンパイルしてみる。
-・・・うーん・・・・。残念ながら、これはまったく結果が変...
-今度は、Kタンが移植してくれた golib00 に挑戦してみる。
-おぉぉ!!! コンパイルが実に素直に通ってしまった。 OS...
-うぐぐぐぐ・・・・残念ながら、このOSASK.EXE も起動しない...
**秒読み取り消し!!!
-とりあえず、コンパイルを通すことには成功したようだ。第一...
-さて、それでは、なぜ出来あがったOSASK.EXEが起動しないの...
-できあがったOSASKは、Win32で作ったもの(もちろん稼動する...
-まず、OSASK.EXE を作り上げているものを比べてみる。base.e...
--base.exe
--boot32.bin
--ankfont0.tek
--decode0.tek
--fdcdrv0.tek
--init.tek
--keymos0.tek
--papi0.tek
--pioneer0.tek
--pokon0.tek ・・・・ん? こいつ、サイズが違うぞ!
--tapi0.tek
--timerdrv.tek
--vesa8.tek
--vesa16.tek
--vesa32.tek
--vgadrv0.tek
--winman0.tek ・・・・あ、これもだ!
-上記の pokon0.tek と winman0.tek 以外は、サイズも内容...
-うむ・・・・とりあえず、pokon0.tek と winman0.tek から...
-まず、Kタンの提案通り pokon0.tek と winman0.tek を、Win3...
--・・・あっさり動いてしまった。っということは、とりあえ...
-次に、その前の段階。pokon0.bin と winman0.bin を入れ替...
-うおぉぉ!! I.Takさんの修正で動いてしまったぁぁぁ!!...
-・・・つーことは・・・あれ? とりあえずこれ、成功してし...
-なんと、Kタンが見るに見かねて GO の移植を表明???。う...
-えーと・・・。とりあえず、ここまでで出来上がった''Linux...
**新展開! GO が移植された!?
-ここまでは、Linux上のCコンパイラ(gcc。私が使ってたのはV...
-うっわぁぁ・・・。ちょっとだめだ。 GOをLinuxで動かすには...
-シャクらしいが、「とにもかくにもとりあえず」LinuxでOSASK...
-えーと。そんな感じなので(どんな感じじゃ)暫定パッチを公...
-まず、これをゲットしてください。 http://hideyosi.zive.n...
-COLOR(#ff0000){すみません!書き忘れていましたが、上のパ...
~/$ lha -x make39.lzh
~/$ cd src39
~/src39/$ patch -p1 < ../linonosask.patch
-っとまあ、これでパッチは完了ですが、さらに
~/src39/$ cd ankfont0
~/src39/ankfont0/$ gcc -O2 -o txt2bin txt2bin.c
~/src39/ankfont0/$ cd ..
~/src39/$
-が必要です。
-また、今回Kタンが作ってくれた [[golib00w:http://osask.ne...
-さて、そんなこんなで私の遊びにつきあっていただいた方々、...
-GO がほぼ完全に移植されたら、それらをワンパックにして、...
**まとめ。 なぜ、GOの移植を待たねばならないのか? gccで...
-まず、現時点では川合堂ブランドのソフトはほとんど問題なく...
-しかし、[[Linux上でOSASK用バイナリを生成しよう]]でもわか...
-また、今回の移植で gccのCPP にもちょっとした問題がありま...
-ライブラリアンも問題です。私の調査不足かもしれませんが、...
-I.Takさんが発見してくれた winman0 の問題は、どうも gcc ...
-これらを無理にこね回すより、やはり GO を移植したほうが結...
----
-ライブラリアンはarです。がんばれ! -- [[I.Tak.]] SIZE(10)...
-ライブラリを作るのにはarとranlibを使います。 ar rc $@ $(...
-arもranlibもでかいので、即興でgolib00をstdc版にしてみま...
-とりあえずCソース由来以外は、1バイトの差もなくwin32上でm...
-pokonとwinmanが違うのは当然です。この2つはC言語で書かれ...
-仮に中身も同じだとしたら、今度はWindows上で作ったpokon.0...
-私もAT,98,TOWNSで作って動かしましたけど, 動きませんでし...
-↑読みました。一部のコードがデータセグメントに入ってるよ...
-static JPEG jpeg; という行を ルートスコープ (関数の外) ...
-gccのバグを回避するためにwinman0.cを書き直すっていうのは...
-とりあえずできました。[OSASK 6399]を見てください。>GO移...
-GOがLinuxで動けば、バグ回避だけではなく1バイトも違わない...
-1バイトも違わないってありますか? -- [[(´_ゝ`)]] SIZE...
-はい、ありますよ。違うものができる理由がありませんから。...
-へぇー -- [[(´_ゝ`)]] SIZE(10){2003-08-17 (日) 20:23:...
-セグメンテーション違反です 。。。なんでだろう。。。 -- [...
-パッチはまだか。がんばってくださいね。pcatの中でnask fdc...
-よく分かりませんが、そのnaskはwin32版をそのまま使ってい...
-ええと何がしゃくだったのかを報告しておくと、gccが間違っ...
-すみませんでした。Red Hat9です。naskはgcc3.2.2,2.96でコ...
-見えにくいので訂正。gcc-3.2.2でコンパイルしたもの、gcc-2...
-touchでごまかしてみたところ、vgadrv0やvesa8などでもSegV...
-うーんと、naskにかける.nasソースは、win32上で生成したも...
-win32と同じかどうかはわかりませんが、timedrv,keymos0とか...
-パッチ使ったのにSegV...Red Hat9でビルドできた人いないん...
-えぇ!? 私のパッチでもエラーがでましたか? ううむ・・・...
-顔文字さん、よかったらちょっとお付き合いくださいませんか...
-ASKA、nask,naskcnv0をgcc296でビルドしなおしてもだめでし...
-ちと確認ですば、cc1は例の方法で作られましたか? 実は、...
-それと、もしよかったら、現状(メイクが途中で失敗している...
-はい。つか、pcatでmakeしてるとcc1関係なさそうなんですが...
-CGIに誤りがありますっていわれたので、ls -R src39はだめで...
-http://hideyosi.zive.net/goset/goset-0.0.1-0hd1.i386.rpm...
-↑(´_ゝ`)です。 -- [[(´_ゝ`)]] SIZE(10){2003-08-18 ...
-うーん・・・。たしかに、かなり不可解なエラーですね。nask...
-あら? いけね。ほんとうだ。動かしちゃったんだ。わすれて...
-GOのcpp0とASKAとの相性がどうかということに関してだけはち...
-顔文字さんの報告だけでは、他の人にはどうにもできないよう...
-すみませんでした。以後気をつけます。いちおうlzhをうpしま...
-hideyosiさんのgosetバイナリではうまくいきました!ありがと...
-naskの問題みたいです。/usr/bin/strip: /var/tmp/goset-0.0...
-をつかってみたら、SegVしました。Red Hatでビルドしたnask...
-あ、普通にgolib00wじゃなくてgolib00でいいんですね。depen...
-Bochsでも、起動するときとしないときがあるようです。リセ...
-実機VAIO+iplfffで問題なく起動しました!本当にありがとう...
-意見:makefile中の、echo BOCHS = 13>> depend.mak は、ech...
-echo #DESIGN = WIN31#なども、echo '#DESIGN = WIN31#'とす...
-Windows のコマンドプロンプトでは、>> の前にスペースを入...
-顔文字さん、レポートありがとうございます。やはり、どうも...
-私もCもアセンブラも全然だめで、えらそうに書いてますが、...
-余談ですが、そちらは、「顔文字さん」でしょうか?それとも...
-なんとよんでもよいですけど、「ふーん」ではないです。「流...
-気のせいかも知れないですけど、WIN9X以外のスタイルでは、B...
-hideyosiさんのnaskと僕のnaskで確認しました。nask iplfff0...
-本当に済みません。勘違いしていました。naskじゃなくてnasm...
-sedとshとpatchを駆使 (どこがじゃ) して一発パッチを作って...
-いいえ、それは違います。実は僕がsrc39aのinit.askを間違え...
-/.に載ったようです -- SIZE(10){2003-08-20 (水) 01:16:26}
-URLはこちらです。 http://slashdot.jp/developers/03/08/19...
-make4lin.tar.gzでは、txt2binにパスを通したり、$(BIN_PATH...
-たくさんのアドバイスやレポート、ほんとうにどうもありがと...
ページ名: