1#! make -f
2#---------------------------------------------------------------------------
3#  Project:  TwlSDK - tools - makelcf.TWL
4#  File:     Makefile
5#
6#  Copyright 2007-2008 Nintendo.  All rights reserved.
7#
8#  These coded instructions, statements, and computer programs contain
9#  proprietary information of Nintendo of America Inc. and/or Nintendo
10#  Company Ltd., and are protected by Federal copyright law.  They may
11#  not be disclosed to third parties or copied or duplicated in any form,
12#  in whole or in part, without the prior written consent of Nintendo.
13#
14#  $Date:: 2008-09-18#$
15#  $Rev: 8573 $
16#  $Author: okubata_ryoma $
17#---------------------------------------------------------------------------
18
19TARGET_PLATFORM    =   TWL
20
21include $(TWLSDK_ROOT)/build/buildtools/commondefs
22
23#---------------------------------------------------------------------------
24
25TARGET_BIN  =   makelcf.TWL.exe
26TARGETS     =   $(BINDIR)/$(TARGET_BIN)
27
28SRCS        =   makelcf.c           \
29                defval.c            \
30                misc.c              \
31                container.c         \
32                createlcf.c         \
33                spec.tab.c          \
34                spec.yy.patched.c   \
35                tlcf.tab.c          \
36                tlcf.yy.c           \
37                version.c
38
39HEADERS     =   defval.h    \
40                makelcf.h   \
41                misc.h
42
43OBJDIR      =   obj
44BINDIR      =   bin
45
46OBJS        =   $(addprefix $(OBJDIR)/,$(SRCS:.c=.o))
47
48MACROS      +=  -DSDK_TWL
49NEWDIRS     =   $(OBJDIR) $(BINDIR)
50LDIRT_CLEAN +=  $(NEWDIRS) version.c                                \
51                spec.tab.c spec.tab.h spec.yy.c spec.yy.patched.c   \
52                tlcf.tab.c tlcf.tab.h tlcf.yy.c
53
54INSTALL_DIR     =   $(TWL_INSTALL_TOOLSDIR)/bin
55INSTALL_TARGETS =   $(TARGETS)
56
57#---------------------------------------------------------------------------
58
59include $(TWLSDK_ROOT)/build/buildtools/modulerules.x86
60
61do-build:   $(TARGETS)
62
63$(TARGETS): $(OBJS) $(MAKEFILE)
64	$(CC_X86) $(OBJS) -o $@
65
66$(OBJS):%.o:
67	$(COMPILE_C)
68
69$(OBJDIR)/makelcf.o:            makelcf.c makelcf.h version.c
70$(OBJDIR)/container.o:          container.c makelcf.h
71$(OBJDIR)/createlcf.o:          createlcf.c makelcf.h tlcf.tab.c
72$(OBJDIR)/defval.o:             defval.c misc.h defval.h makelcf.h
73$(OBJDIR)/misc.o:               misc.c misc.h defval.h makelcf.h
74
75$(OBJDIR)/spec.tab.o:           spec.tab.c makelcf.h
76$(OBJDIR)/spec.yy.patched.o:    spec.yy.patched.c spec.tab.c makelcf.h
77$(OBJDIR)/spec.tab.o:           spec.tab.c
78$(OBJDIR)/tlcf.yy.o:            tlcf.yy.c tlcf.tab.c makelcf.h
79$(OBJDIR)/tlcf.tab.o:           tlcf.tab.c
80$(OBJDIR)/version.o:            version.c
81
82spec.yy.c:      spec.l spec.tab.c
83spec.tab.c:     spec.y
84tlcf.yy.c:      tlcf.l
85tlcf.tab.c:     tlcf.y
86
87$(OBJDIR)/spec.yy.patched.o:    WARNING += -Wno-unused-label -Wno-unused-function
88
89spec.yy.patched.c:  spec.yy.c
90	sed 's/^#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (1024*1024)/' $< > $@
91
92version.c:      $(filter-out version.c,$(SOURCES)) $(HEADERS) $(MAKEFILE)
93	@for i in $^ ;                                                  \
94    do                                                              \
95        date -r $$i +'const unsigned long SDK_DATE_OF_LATEST_FILE=%Y%m%dUL;';    \
96    done | sort | tail -1 > $@
97
98#===== End of Makefile =====
99