サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
  
現: 2024-01-08 (月) 12:58:44 ゲスト ソース
Line 1: Line 1:
 +* アプリケーション開発用Makefile例
 +-introa12にバンドルする予定のもの
 +-introa11版はバグがあったり、分割コンパイルにあまり向かなかったりしていた。
 +* win32用 (Linux用?)
 +-CとASKAの混在にも対応。ライブラリ作成にも対応。DLL作成にも対応。
 +
 + TARGET    = helloc4
 + STACKSIZE  = 4k
 + MALLOCSIZE = 1k
 + MMAREA    = 0
 + OBJS      = $(TARGET).obj
 + 
 + # 以上5つはソースごとに書き換える
 + # OBJSを書き換えると分割コンパイル対応
 + 
 + TOOLPATH =
 + INCPATH  = $(TOOLPATH).
 + RULEFILE = $(TOOLPATH)guigui00.rul
 + DLLRULE  = $(TOOLPATH)dllrule0.rul
 + MAKE    = $(TOOLPATH)make -r
 + SJISCONV = $(TOOLPATH)sjisconv -s
 + CC1      = $(TOOLPATH)cc1 -I$(INCPATH) -Os -quiet
 + GAS2NASK = $(TOOLPATH)gas2nask -a
 + NASK    = $(TOOLPATH)nask
 + OBJ2BIM  = $(TOOLPATH)obj2bim3
 + BIM2BIN  = $(TOOLPATH)bim2bin3
 + CPP0    = $(TOOLPATH)cpp0 -P -I$(INCPATH)
 + ASKA    = $(TOOLPATH)aska
 + NASKCNV  = $(TOOLPATH)naskcnv0 -l -s -w
 + GOLIB    = $(TOOLPATH)golib00w
 + DELE    = del
 + 
 + # 以上の項目はあなたのディレクトリ構成にあわせて書き換える
 + 
 + ALL :
 +     $(MAKE) $(TARGET).bin
 + 
 + %.ca : %.c Makefile
 +     $(SJISCONV) $*.c $*.ca
 + 
 + %.gas : %.ca Makefile
 +     $(CC1) -o $*.gas $*.ca
 + 
 + %.nas : %.gas Makefile
 +     $(GAS2NASK) $*.gas $*.nas
 + 
 + %.obj : %.nas Makefile
 +     $(NASK) $*.nas $*.obj
 + 
 + %.ias : %.ask Makefile
 +     $(CPP0) -o $*.ias $*.ask
 + 
 + %.3as : %.ias Makefile
 +     $(ASKA) $*.ias $*.3as
 + 
 + %.nas : %.3as Makefile
 +     $(NASKCNV) $*.3as $*.nas
 + 
 + %.lst : %.nas Makefile
 +     $(NASK) $*.nas $*.obj $*.lst
 + 
 + $(TARGET).bim : $(OBJS) Makefile
 +   $(OBJ2BIM) @$(RULEFILE) out:$(TARGET).bim stack:$(STACKSIZE) map:$(TARGET).map $(OBJS)
 + 
 + %.bin : %.bim Makefile
 +     $(BIM2BIN) in:$*.bim out:$*.org malloc:$(MALLOCSIZE) mmarea:$(MMAREA)
 +     $(BIM2BIN) -osacmp -tek0 in:$*.org out:$*.bin
 + 
 + $(TARGET).lib : $(OBJS) Makefile
 +     $(GOLIB) out:$(TARGET).lib $(OBJS)
 + 
 + $(TARGET).dll : $(OBJS) Makefile
 +     $(OBJ2BIM) @$(DLLRULE) out:$(TARGET).bim map:$(TARGET).map $(OBJS)
 +     $(BIM2BIN) -osacmp -tek0 in:$(TARGET).bim out:$(TARGET).dll
 + 
 + clean :
 +     $(DELE) *.obj
 +     $(DELE) $(TARGET).bim
 +     $(DELE) $(TARGET).map
 +     $(DELE) $(TARGET).org
 +-(註)次の修正を加えるとLinux版になるかもしれない
 +
 + SJISCONV = cp
 +
 + CC1      = $(TOOLPATH)gocc1 -I$(INCPATH) -Os -quiet
 +
 + CPP0    = $(TOOLPATH)gocpp0 -P -I$(INCPATH)
 +
 + GOLIB    = $(TOOLPATH)golib00
 +
 + DELE    = rm -f
 +
 +* Linux用
 +-(誰か書いてちょ)
 +-(ひょっとしてdelをrmにするだけでいいのかな?)
 +- introa11.lzhからintroe01.lzhをまとめてコンパイルするように修正した
 +お手軽セットはこちら。
 +[[introset-a2e>http://www.gigo-ice.org/archives/introset-a2e.tar.bz2]]
 +
 +-ざっとしか見てませんが、こんな感じにすれば多少応用が楽になるかも?
 +
 +* Linux用?
 + TARGET    = helloc4
 + STACKSIZE  = 4k
 + MALLOCSIZE = 1k
 + MMAREA    = 0
 + OBJS      = $(TARGET).obj
 + 
 + # 以上5つはソースごとに書き換える
 + # OBJSを書き換えると分割コンパイル対応
 + 
 +
 + 
 + INCPATH  = .
 + RULEFILE = guigui00.rul
 + SJISCONV = ln
 + CC1      = gocc1
 + GAS2NASK = gas2nask
 + NASK    = nask
 + OBJ2BIM  = obj2bim3
 + BIM2BIN  = bim2bin3
 + 
 + MAKE    = make
 + DEL      = rm -f
 + # 以上の項目はあなたのディレクトリ構成にあわせて書き換える
 + 
 + ALL :
 +     $(MAKE) $(TARGET).bin
 + 
 + %.ca : %.c Makefile
 +     $(SJISCONV) -s $*.c $*.ca
 + 
 + %.gas : %.ca Makefile
 +     $(CC1) -I$(INCPATH) -Os -quiet -o $*.gas $*.ca
 + 
 + %.nas : %.gas Makefile
 +     $(GAS2NASK) -a $*.gas $*.nas
 + 
 + %.obj : %.nas Makefile
 +     $(NASK) $*.nas $*.obj
 + 
 + $(TARGET).bim : $(OBJS) Makefile
 +   $(OBJ2BIM) @$(RULEFILE) out:$(TARGET).bim stack:$(STACKSIZE) map:$(TARGET).map $(OBJS)
 + 
 + %.bin : %.bim Makefile
 +     $(BIM2BIN) in:$*.bim out:$*.org malloc:$(MALLOCSIZE) mmarea:$(MMAREA)
 +     $(BIM2BIN) in:$*.org out:$*.bin -osacmp -tek0
 + 
 + clean :
 +     $(DEL) $(TARGET).map
 +     $(DEL) $(TARGET).org
 +     $(DEL) $(TARGET).bin
 +
 +う��ん・・・いまいち。なんか無理に書くほどのことじゃなかったような・・・・(^^;)
 +
 +* Makefileちょっぴり解説コーナー
 + %.gas : %.ca Makefile
 +     $(CC1) -o $*.gas $*.ca
 +-これは、拡張子.gasのファイルを作るには、同じ名前で拡張子が.caのものとMakefileが必要だよっていう意味で、2行目以降が作り方になっています。$*の部分が、%の部分を引き継ぎます。
 +-makeは、最初のALL:を実行してmake helloc4.binを認識し、ああ、helloc4.binを何とかして作らなきゃいけないのね、と自分の任務を理解します。
 +-Makefileには、拡張子.binを作るためには同じ名前で拡張子が.bimのものが必要、と書いてあります。そしてhello4.bimのためにはhelloc4.objが必要、とも書いてあります。・・・こんな感じで自動的にたどっていくわけです。
 +-それで存在するファイルを見つけることができたら、そこから順番にコマンドを実行して、目的のファイルを作ってくれます。
 +
 +* こめんと欄
 +-余談ですが、MakeファイルをWin・UNIX共通にするのは、ある規模よりも大きくなったら、スッパリあきらめるべきでしょうね。私も随分OSASKのMakeファイルをこねくりまわしましたが、結局は必要以上に複雑化してしまい読むのも大変になってしまうだけ。特にUNIX系はテキスト処理に優れているんですから、むしろ単純で読みやすいもののほうが結局手直しが楽って感じですねぇ・・・ -- [[hideyosi]] SIZE(10){2003-09-23 (火) 09:18:05}
 +
 +#comment
  

  • Makefile_app のバックアップ差分(No. All)
    • 現: 2024-01-08 (月) 12:58:44 ゲスト
トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。