makefileからの複数の実行ファイル

私はcで書かれた簡単なシミュレートされたリアルタイムオペレーティングシステムをコンパイルするmakefileを書こうとしています。

ディレクトリ構造は次のようになります

 **KB**

     SOURCE
     -------
         - Keyboard.c (helper process)
     Incl
     --------
         - Include files needed by keyboard.c

    **CRT**

     SOURCE
     -------
         - crt.c (helper process)
     Incl
     --------
         - Include files needed by crt.c

    **RTX**

    SOURCE
    -------
       - SOURCE Files

    INCLUDE
    --------
       - Include Files

RTXでは、ヘルパープロセスを2つの実行可能ファイルにコンパイルし、実行可能ファイルを使用して実行する必要があります。

同じMakefile内で3つの異なる実行ファイルを生成する方法や、1つの実行可能ファイルに対しても異なるインクルードファイルにそのファイルを含める方法についてはわかりません。以前はmakefileを作成したことがなく、オンラインのチュートリアルに続いて問題が発生しています。

RTXのためにこれまで私が持っていたことがあります(別のパスに追加する方法は?)

#For RTX Exexutable
OBJS = api.o init_table.o k_rtx.o msg.o pcb.o queue.o user_proc.o main.o

iRTX-G29 : $(OBJS)
    gcc -o iRTX-G29 $(OBJS)

api.o : api.h
    gcc -c api.c
init_table.o : init_table.h
    gcc -c init_table.c
k_rtx.o : unistd.h string.h k_rtx.h
    gcc -c k_rtx.c
main.o : fcntl.h sys/mman.h sys/wait.h stdio.h stdio.h sys/types.h sys/ipc.h sys/shm.h errno.h string.h stdlib.h signal.h k_rtx.h buffer.h global.h
    gcc -c main.c
msg.o : msg.h
    gcc -c msg.c
queue.o : queue.h
    gcc -c queue.c
user_proc.o : user_proc.h
    gcc -c user_proc.c

どんな助けでも大歓迎です!ありがとう!

ベストアンサー

まず、既存のmakefileを単純化してみましょう。同じフォームを持つ多くのオブジェクトルールがあります。

msg.o : msg.h
    gcc -c msg.c

それを書くためのよりクリーンな方法は次のようなものです:

msg.o : msg.c msg.h
    gcc -c $< -o [email protected]

(依存関係 msg.c を追加して、自動変数を指定し、出力の名前を指定します)。これらのオブジェクトルールはすべて同じように見えるので、< -o [email protected]

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です