ä»çµã¿ãå¤ã£ã¦ãã¾ãã° Makefile ã¯ç°¡æ½ã«æ¸ãã¾ãï¼$(CC) ã¨ã $@ ã¨ã $< ãªãã¦å¤æ°ã¯ä½¿ã£ããè² ãã§ãï¼
åºæ¬(ãã®1)
ã½ã¼ã¹ã³ã¼ã hoge.c ãã å®è¡å½¢å¼ã®ãã¤ã㪠hoge ãçæããMakefileã¯ï¼ä»¥ä¸ã®ããã«æ¸ãã¾ããã
all: hoge
ããã ãã§ãï¼ããã§
$ make all
ã¨ãã㨠hoge ãçæããã¾ã
éè¦ãªç¹ã¯ï¼ééã£ã¦ã
all: hoge hoge: hoge.c $(CC) hoge.c -o hoge
ã®ãããªMakefileãæ¸ããªããã¨ã§ãï¼ãã®ãããªMakefileã§ã¯
#!/bin/sh CC=gcc $CC hoge.c -o hoge
ã¨ãããããªã·ã§ã«ã¹ã¯ãªããã¨åç¨åº¦ã®ä½¿ãåæããããã¾ããï¼
åºæ¬(ãã®2)
ããã§ä¾ãã°-O3 ãä»ãã¦ã³ã³ãã¤ã«ãããå ´åãï¼-lm ãä»ãã¦ãªã³ã¯ãããå ´åã¯ä»¥ä¸ã®ããã«ãã¾ãï¼
CFLAGS += -O3 LDFLAGS += -lm all: hoge
åºæ¬(ãã®3)
ã½ã¼ã¹ã³ã¼ãã hoge.c 㨠fuga.c ã«åå²ãã¦ããå ´åï¼ã¤ã¾ã
- hoge.c ãã hoge.o ãã³ã³ãã¤ã«
- fuga.c ãã fuga.o ãã³ã³ãã¤ã«
- hoge.o 㨠fuga.o ããªã³ã¯ã㦠å®è¡å¯è½ãªãã¤ã㪠hoge ãçæãã
å ´å㯠Makefile ã¯ä»¥ä¸ã®ããã«ãªãã¾ã
all: hoge hoge: hoge.o fuga.o
åºæ¬(ãã®4)
ä¸æçã« -Wall ãä»ãã¦ã³ã³ãã¤ã«ãããå ´åãªã©ã¯ï¼ Makefile ãæ¸ãæããã«
$ make CFLAGS=-Wall
ã¨ãããã¨ãåºæ¥ã¾ãï¼åæ§ã«ãã¨ãã°ã³ã³ãã¤ã©ã gcc ãã gcc-3.1 ã«æ¿ãããæã
$ make CC=gcc-3.1
ã¨åºæ¥ã¾ãï¼
æ¯åå¼æ°ãä¸ããã®ãé¢åãªå ´åã¯ï¼ç°å¢å¤æ°ã§è¨å®ãããã¨ãåºæ¥ã¾ãï¼
$ export CC=gcc-3.1 $ make
ãªããã®ãããªç°¡æ½ãªmakefile㧠ãã«ãã§ããã®ãï¼ãããç解ããããã«ã¯ make ã®åä½åçãç解ããå¿ è¦ãããã¾ãï¼åä½åçã«ã¤ãã¦ã¯æ¬¡ã®ã¢ã¼ãã£ã¯ã«ãã覧ä¸ããhttp://d.hatena.ne.jp/pyopyopyo/20070218/p2ï¼
ã¾ã以ä¸ã®æ¬ãèªããã¨ããããããã¾ãï¼
ãªã©ã¤ãªã¼ã»ã¸ã£ãã³
売ãä¸ãã©ã³ãã³ã°: 130044


