[C言語]Makefile2

main.c // 初期化、ゲーム実行処理

#include "game.h"

int main(int argc, char *argv[]){ // コマンドライン引数 int argcは引数の個数、char *argvは引数の文字列
	gameInit(&argc, argv);

	gameRun();

	return 0;
}

game.h

#ifndef __HEADER_GAME

#define __HEADER_GAME

void gameInit(int *argc, char **argv);
void gameRun();

#endif

game.c  // glut初期化 ※glInit

#include "game.h"

#include <GL/glut.h>
#include "define.h"
#include "display.h"

void glInit(int *argc, char **argv);

void gameInit(int *argc, char **argv){
	glInit(argc, argv);
}

void gameRun(){
	glutMainLoop();
}

void glInit(int *argc, char **argv){
	glutInit(argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT);
	glutCreateWindow("myGame");
	glutDisplayFunc(displayMain);
}

define.h

#ifndef __HEADER_DEFINE

#define __HEADER_DEFINE

#define WINDOW_WIDTH 640
#define WINDOW_HEIGHT 480

#endif

display.h

#ifndef __HEADER_DISPLAY

#define __HEADER_DISPLAY

void displayMain();

#endif

display.c  // ゲーム処理

#include "display.h"

void displayMain(){
	
}

GNUmakefile // コンパイル

main: main.c game.o display.o
	gcc main.c game.o display.o -o main -lglut -lGLU -lGL

game.o: game.c game.h define.h display.h
	gcc -c game.c -o game.o -lglut -lGLU -lGL 

display.o: display.c display.h
	gcc -c display.c -o display.o -lglut -lGLU -lGL

clean:
	rm -rf main *.o

$ make
gcc -c game.c -o game.o -lglut -lGLU -lGL
gcc -c display.c -o display.o -lglut -lGLU -lGL
gcc main.c game.o display.o -o main -lglut -lGLU -lGL