Last active
August 29, 2015 14:04
-
-
Save takeutch-kemeco/d4aad7cd895836a92797 to your computer and use it in GitHub Desktop.
osecpu-vm 123d を Linux 上の c_blike_01f_linux用にビルドするための Makefile
This file contains 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
使い方: | |
ソースファイルパッケージのルートディレクトリ(app0100.ask などのソースファイルが置かれてる所)に、この Makefile を置いた状態で: | |
make osectols | |
これで osectols バイナリーをビルドできます。(ファイル名 osectols) | |
make osecpu | |
これで osecpu-vm バイナリーをビルドできます。(ファイル名 osecpu) | |
make osecpu-vm32 | |
これで osecpu-vm32 バイナリーをビルドできます。(ファイル名 osecpu-vm32) | |
(x86_32bitが動作可能な環境でなければ、生成したバイナリーが動作しないかもしれません) | |
make osecpu-mini | |
これで osecpu-vm-mini バイナリーをビルドできます。(ファイル名 osecpu-mini) | |
make 任意の.ose | |
これで 任意の.ask から .ose バイナリーをビルドできます。(ファイル名 任意の.ose) | |
エンジョイ | |
また、おまけですが | |
sudo make install | |
これで /usr/bin に osectols, osecpu, osecpu-vm32, osecpu-mini バイナリーがインストールされます。 | |
インストール後は ./osectols ではなく、osectols と書くだけで実行できるようになります。 | |
(ウインドウズで言う所の C:\Windows\System ディレクトリーへコピーして置いたような状態) | |
sudo make uninstall | |
これで /usr/bin の osectols, osecpu, osecpu-vm32, osecpu-mini バイナリーを削除します。(アンインストール) | |
備考: | |
GitHub-gists のテキストボックス内の表示だと、”タブ”がスペースに置き換わってしまうので、ここからメモ帳などでMakefileへコピペしても正常動作しません。 | |
(Makefileの書式はタブとスペースは、異なる意味をもちます) | |
GitHub-gists に"Raw"というボタンがあるので、ここを押すと無加工なプレーンな状態のテキストを得られます。それをコピペするように注意してください。 | |
また、当然ですが、c_blike-01f_linux が予めインストールされてる環境でなければ正常動作しません。 | |
だれか有志の方が xlib や freeglut などのもっと汎用的なライブラリー上で動くドライバー(linux上でも動くやつ)を書いてくれることを願ってます。ほんとに。マジで。誰かやって。おねがい。 | |
This file contains 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
DEFS = | |
CFLAGS = -Os -Wl,-s | |
LIBS = | |
BINDIR = /usr/bin | |
TOL_PROG = osectols | |
TOL_SRCS_DIR = tol | |
TOL_SRCS = $(TOL_SRCS_DIR)/osectols.c | |
TOL_OBJS = $(TOL_SRCS:.c=.o) | |
TOL_CFLAGS = $(CFLAGS) -I./$(TOL_SRCS_DIR) | |
TOL_LIBS = $(LIBS) | |
TOL_DEFS = $(DEFS) | |
VM_PROG = osecpu | |
VM_SRCS_DIR = vm | |
VM_SRCS = $(VM_SRCS_DIR)/osecpu-vm.c $(VM_SRCS_DIR)/osecpu-vm.h \ | |
$(VM_SRCS_DIR)/other.c \ | |
$(VM_SRCS_DIR)/integer.c \ | |
$(VM_SRCS_DIR)/pointer.c \ | |
$(VM_SRCS_DIR)/float.c \ | |
$(VM_SRCS_DIR)/extend.c \ | |
$(VM_SRCS_DIR)/api.c \ | |
$(VM_SRCS_DIR)/driver.c \ | |
$(VM_SRCS_DIR)/decode.c \ | |
$(VM_SRCS_DIR)/tek.c \ | |
$(VM_SRCS_DIR)/debug.c | |
VM_OBJS = $(VM_SRCS:.c=.o) | |
VM_CFLAGS = $(CFLAGS) -I./$(VM_SRCS_DIR) `pkg-config blike --cflags` | |
VM_LIBS = $(LIBS) `pkg-config blike --libs` | |
VM_DEFS = $(DEFS) -D__linux__ | |
VM_M32_PROG = osecpu-m32 | |
VM_M32_SRCS_DIR = vm-m32 | |
VM_M32_SRCS = $(VM_M32_SRCS_DIR)/osecpu-vm.c $(VM_M32_SRCS_DIR)/osecpu-vm.h \ | |
$(VM_M32_SRCS_DIR)/other.c \ | |
$(VM_M32_SRCS_DIR)/integer.c \ | |
$(VM_M32_SRCS_DIR)/pointer.c \ | |
$(VM_M32_SRCS_DIR)/float.c \ | |
$(VM_M32_SRCS_DIR)/extend.c \ | |
$(VM_M32_SRCS_DIR)/api.c \ | |
$(VM_M32_SRCS_DIR)/driver.c | |
VM_M32_OBJS = $(VM_M32_SRCS:.c=.o) | |
VM_M32_CFLAGS = $(CFLAGS) -I./$(VM_M32_SRCS_DIR) `pkg-config blike --cflags` | |
VM_M32_LIBS = $(LIBS) `pkg-config blike --libs` | |
VM_M32_DEFS = $(DEFS) -D__linux__ | |
VM_MINI_PROG = osecpu-mini | |
VM_MINI_SRCS_DIR = vm-mini | |
VM_MINI_SRCS = $(VM_MINI_SRCS_DIR)/osecpu-vm.c $(VM_MINI_SRCS_DIR)/osecpu-vm.h \ | |
$(VM_MINI_SRCS_DIR)/other.c \ | |
$(VM_MINI_SRCS_DIR)/integer.c \ | |
$(VM_MINI_SRCS_DIR)/pointer.c \ | |
$(VM_MINI_SRCS_DIR)/float.c \ | |
$(VM_MINI_SRCS_DIR)/extend.c \ | |
$(VM_MINI_SRCS_DIR)/api.c \ | |
$(VM_MINI_SRCS_DIR)/driver.c | |
VM_MINI_OBJS = $(VM_MINI_SRCS:.c=.o) | |
VM_MINI_CFLAGS = $(CFLAGS) -I./$(VM_MINI_SRCS_DIR) `pkg-config blike --cflags` | |
VM_MINI_LIBS = $(LIBS) `pkg-config blike --libs` | |
VM_MINI_DEFS = $(DEFS) -D__linux__ | |
all: | |
%.ose:%.ask | |
gcc -E -o a_0ask.txt -x c $< | |
./osectols tool:aska in:a_0ask.txt out:a_1oas_$*.txt | |
gcc -E -P -o a_2cas.txt -x c a_1oas_$*.txt | |
./osectols tool:lbstk in:a_2cas.txt out:a_3cas.txt lst:a_3lbl.txt | |
./osectols tool:db2bin in:a_3cas.txt out:$@ | |
$(TOL_PROG): $(TOL_OBJS) | |
gcc $(TOL_DEFS) $(TOL_CFLAGS) $(TOL_LIBS) -o $@ $(TOL_OBJS) | |
$(VM_PROG): $(VM_OBJS) | |
gcc $(VM_DEFS) $(VM_CFLAGS) $(VM_LIBS) -o $@ $(VM_OBJS) | |
$(VM_M32_PROG): $(VM_M32_OBJS) | |
gcc $(VM_M32_DEFS) $(VM_M32_CFLAGS) $(VM_M32_LIBS) -o $@ $(VM_M32_OBJS) | |
$(VM_MINI_PROG): $(VM_MINI_OBJS) | |
gcc $(VM_MINI_DEFS) $(VM_MINI_CFLAGS) $(VM_MINI_LIBS) -o $@ $(VM_MINI_OBJS) | |
.c.o: | |
gcc $(DEFS) -c -o $@ $< | |
clean: | |
rm -f $(TOL_PROG) | |
rm -f $(TOL_SRCS_DIR)/*.o | |
rm -f $(VM_PROG) | |
rm -f $(VM_SRCS_DIR)/*.o | |
rm -f $(VM_M32_PROG) | |
rm -f $(VM_M32_SRCS_DIR)/*.o | |
rm -f $(VM_MINI_PROG) | |
rm -f $(VM_MINI_SRCS_DIR)/*.o | |
install: | |
install $(TOL_PROG) $(VM_PROG) $(VM_M32_PROG) $(VM_MINI_PROG) $(BINDIR) | |
uninstall: | |
rm -f $(BINDIR)/$(TOL_PROG) | |
rm -f $(BINDIR)/$(VM_PROG) | |
rm -f $(BINDIR)/$(VM_M32_PROG) | |
rm -f $(BINDIR)/$(VM_MINI_PROG) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment