2013ǯ02��08��

Makefile�ΰ�¸�ط��ε��Ҥ�ư�������ñ����ˡ

�ӥ�ɤ�make���ޥ�ɤ�Ȥ��Ȥ��ˤ�Makefile�˥ե�����ΰ�¸�ط���񤤤Ƥ���ɬ�פ�����ޤ���

����������ȯ������ǥ��󥯥롼�ɤ���إå��ե����뤬�����Ƥ���ȡ������ΰ�¸�ط�����Ȥǵ��Ҥ���Τ����ݤǤ���(�����ơ�����򥵥ܤä����Ȥǥϥޤ뤳�Ȥ�褯���뤳�ȤǤ���:)

�����Ǥϡ�gcc�ε�ǽ��ȤäƤ����ư��������ˡ��Ҳ𤷤ޤ���



gcc�Υץ�ץ����å��ǰ�¸�ط���ư��������

gcc�ǥ���ѥ��뤹��Ȥ��� -MD �Ȥ������ץ�����Ĥ���ȡ�����ѥ���ȤȤ�˳�ĥ�Ҥ�.d�Υե����뤬��������ޤ��������Makefile��Ʊ���񼰤Ǥ��Υե�����ΰ�¸�ط������Ҥ���Ƥ��ޤ���

�ܤ�����gcc�Υޥ˥奢��򻲾Ȥ��Ƥ���������

http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Preprocessor-Options.html

����������¸�ط��Υե������Makefile�ˤȤꤳ��

Makefile�����C�Υ���ѥ��륪�ץ����� -MD���ɲä���ˤϡ�Makefile�κǽ�����ǰʲ����ɲä��ޤ���

CFLAGS += -MD

�������줿.d�ե������Ȥꤳ��ˤ�Makefile�κǸ�����˰ʲ����ɲä��ޤ���

-include *.d

��Ƭ��'-'��*.d�Υե����뤬̵����include�����Ԥ������Ǥ⤽���̵�뤹�뤿��λ���Ǥ���

�ޤ�����ư�������줿 *.d�Υե�����������뤿��ˡ�clean�ΤȤ����˰ʲ����ɲä���Ȥ褤�Ǥ��礦��

    rm -f *.d

����ץ�

��ñ������������ޤ���

$ cat hello.c 
#include <stdio.h>
#include "message.h"

main()
{
	printf("%s, world\n", MESSAGE);
}
$ cat message.h 
#define MESSAGE "Hello"

���Τ褦�ˡ�hello.c��message.h�򥤥󥯥롼�ɤ��Ƥ��ޤ���

�Ȥꤢ�����ʲ��Τ褦��Makefile�Ǥ����make���뤳�Ȥ��Ǥ��ޤ���

CFLAGS = -g

OBJS = hello.o

hello: $(OBJS)

clean:
	rm -f hello $(OBJS)

����������ˤ� hello.o��message.h �˰�¸���Ƥ��뤳�Ȥ����Ҥ���Ƥ��ʤ����ᡢmessage.h�������Ƥ�hello.o�Ϻƥ���ѥ��뤵��ޤ���

�ʲ����ֻ�����ʬ���ɲä��ޤ���

CFLAGS = -g
CFLAGS += -MD

OBJS = hello.o

hello: $(OBJS)

clean:
	rm -f hello $(OBJS)
	rm -f *.d

-include *.d

�����make�����

$ make
cc -g -MD   -c -o hello.o hello.c
cc   hello.o   -o hello

��ư�������줿hello.d�����Ƥϰʲ����̤�Ǥ���

$ cat hello.d
hello.o: hello.c /usr/include/stdio.h /usr/include/features.h \
 /usr/include/x86_64-linux-gnu/bits/predefs.h \
 /usr/include/x86_64-linux-gnu/sys/cdefs.h \
 /usr/include/x86_64-linux-gnu/bits/wordsize.h \
 /usr/include/x86_64-linux-gnu/gnu/stubs.h \
 /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
 /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
 /usr/include/x86_64-linux-gnu/bits/types.h \
 /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
 /usr/include/_G_config.h /usr/include/wchar.h \
 /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
 /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
 /usr/include/x86_64-linux-gnu/bits/sys_errlist.h message.h

�����make�ǤϤ���hello.d��Makefile�˥��󥯥롼�ɤ����Τǡ�message.h����������hello.o���ƥ���ѥ��뤵��ޤ���

���ޤ�

�ʲ��Υ��饤�ʡ��ǥ���ѥ����ɬ�פ����ƤΥ������ե����������Ǥ��ޤ���

$ cat *.d | sed -e 's/^.*://' -e 's/\\$//' | tr ' ' '\012' | sort | uniq

(sed�ǹ�Ƭ��:�ޤǤ����������ΥХå�����å��������tr�Ƕ������Ԥ��Ѵ���sort���ƽ�ʣ������)



�ȥ�å��Хå�URL

�����Ȥ���

̾��
 
  ³¨Ê¸»ú
 
 
��������
�ǿ�����
���̥���������
�ǿ�������
<%==comments[n].author%>
<% } %>
�������������󥿡�
  • ������
  • ������
  • �߷ס�

<% for ( var i = 0; i < 7; i++ ) { %> <% } %>
<%= wdays[i] %>
<% for ( var i = 0; i < cal.length; i++ ) { %> <% for ( var j = 0; j < cal[i].length; j++) { %> <% } %> <% } %>
0) { %> id="calendar-611743-day-<%= cal[i][j]%>"<% } %>><%= cal[i][j] %>
���ƥ����̥���������
�������饦��
QR������
QR¥³¡¼¥É
���ԥޥ���������ԥ塼��