C言語用は何となくこんな感じ
CC = g++ a.out : main.o Beacon.o ${CC} -lm -g -o a.out main.o Beacon.o main.o : main.cc ${CC} -c main.cc Beacon.o : Beacon.cc Beacon.h ${CC} -c Beacon.cc clean : rm a.out *.o
ちょっと解説
CC = g++ [↓の${CC}に代入される g++,gcc等を決める] a.out : main.o Beacon.o [a.out という実行ファイルを作るために必要なオブジェクトファイル] ${CC} -lm -g -o a.out main.o Beacon.o [コンパイルコマンド -lm(math), -g(gdb), -o(出力名)] main.o : main.cc [オブジェクトファイルを生成] ${CC} -c main.cc [オブジェクトファイルを生成するコマンド] Beacon.o : Beacon.cc Beacon.h [オブジェクトファイルを作るために必要なファイル] ${CC} -c Beacon.cc clean : ["make clean"と打ったときに実行ファイルとオブジェクトファイルを一気に消去してくれる] rm a.out *.o ["make clean"と打ったときの動作コマンド]
ちょっとJavaでも書いてみた
application util security という3つのパッケージ(package)に分けていて
全体のメイン関数がapplication.Startであるという状況
ライブラリ(SQLドライバ等)を lib というディレクトリに入れている
ここでは Manifestに書き込み,動的に読み込んで使うようにしているので (make manifest)
j2sdk1.4.1_01/jre/lib/ext/ に置く必要がない
コンパイルして Implement.jar というファイルを作る
Windowsではダブルクリックで起動する
コマンドから起動する場合は java -jar Implement.jar とする
# # command # BIN= JAVAC = $(BIN)javac #-verbose JAVA = $(BIN)java JAR = $(BIN)jar ########## # variable # JARFILE = Implement.jar MAIN = application.Start SOURCEDIR = application util security LIBDIR = lib # # file (use in jarfile) # CLASSPATH = $(LIBDIR)/mysql-connector-java-3.0.8-stable-bin.jar $(LIBDIR)/jcsi_base.jar MANIFEST = manifest.txt SOURCE = $(foreach dir, $(SOURCEDIR), $(wildcard $(dir)/*.java)) CLASS = application/*class util/*class security/*class ########## # make jarfile # $(JARFILE): compile $(MANIFEST) $(JAR) cvmf $(MANIFEST) $(JARFILE) $(CLASS) # # make manifest # $(MANIFEST): echo Main-Class: $(MAIN) > $(MANIFEST) echo Class-Path: $(CLASSPATH) >> $(MANIFEST) # # compile # compile: $(JAVAC) $(SOURCE) ########## # make jarfile, and operation test # test go: $(JARFILE) $(JAVA) -jar $(JARFILE) ########## # delete classfile, jarfile, manifest # clean: rm -f $(CLASS) $(JARFILE) $(MANIFEST) $(JARFILES) $(MANIFESTS) .SUFFIXES: .java .class
Javaでは普通"Ant"ってものを使うらしいけど
私は使ったことないのよ〜