rockbox/firmware/test/makefile-rules
Alan Korr 454be44f8d fix bugs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@125 a1c6a512-1295-4272-9138-f99709370657
2002-04-17 14:32:37 +00:00

118 lines
3.5 KiB
Text

#############################################################################
## __________ __ ___.
## Open \______ \ ____ ____ | | _\_ |__ _______ ___
## Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
## Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
## Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
## \/ \/ \/ \/ \/
## Copyright Alan Korr, 2002. All rights reserved.
##
## Permission to use, copy, modify, and distribute this software for any
## purpose is hereby granted without fee, provided that this copyright and
## permissions notice appear in all copies and derivatives, and that no
## charge may be made for the software and its documentation except to cover
## cost of distribution.
##
## This software is provided "as is" without express or implied warranty.
#############################################################################
#######################################################################
## PLEASE CONSIDER THERE IS NOTHING TO CHANGE IN THE FOLLOWING LINES
## SINCE THERE ARE COMMON FOR ALL LIBRARY
##
.SUFFIXES : .o .c .s
%.o: %.c
@echo "Compiling" $<...
@$(CC) -o $(@) $(CFLAGS) $(INCLUDES) -c $<
@$(CC) -M $< $(CFLAGS) $(INCLUDES) > $(*F).d
%.o: %.s
@echo "Assembling" $<...
@$(CC) -o $(@) $(CFLAGS) $(INCLUDES) -c $<
@$(CC) -M $< $(CFLAGS) $(INCLUDES) > $(*F).d
.PHONY: splash all clean backup restore dist install
all: splash $(LIBRARY) test
splash:
@echo "<<< " $(PACKAGE) "-" $(VERSION) ">>>"
####################################################
# LIBRAY PART :
$(LIBRARY): $(OBJECTS)
@echo "Creating library" $(LIBRARY)...
@$(AR) cru $(@) $(OBJECTS)
@$(RL) $(@)
####################################################
# TEST PART :
test: test.tab.o test.lex.o $(LIBRARY)
@echo "Creating executable" $@...
@$(CC) -g -o $(@) $(INCLUDES) $(+) -lfl -lreadline
test.tab.o: test.tab.c
@echo "Compiling" $<...
@$(CC) $(INCLUDES) $(DEFINES) -g -o $(@) -O3 -fomit-frame-pointer -c test.tab.c
test.lex.o: test.lex.c
@echo "Compiling" $<...
@$(CC) $(INCLUDES) $(DEFINES) -g -o $(@) -O3 -fomit-frame-pointer -c test.lex.c
test.tab.h: test.tab.c
test.lex.c: test.l test.tab.h
@echo "Flex:" $<
@flex -otest.lex.c test.l
test.tab.c: test.y
@echo "Bison:" $<
@bison -d test.y
####################################################
# MISCELLANOUS PART :
clean:
@rm -f $(LIBRARY)
@rm -f $(OBJECTS) test.lex.o test.tab.o
@rm -f $(DEPENDENCIES)
@rm -f *~ test test.exe
@rm -f test.tab.h test.tab.c test.lex.c
@rm -f core
backup:
@mkdir -p ./backup
@cp -f makefile ./backup
@cp -f test.l ./backup
@cp -f test.y ./backup
@cp -f $(SOURCES:.c=.txt) ./backup
@for header in $(HEADERS) ; do cp -f $$header ./backup ; done
@for source in $(SOURCES) ; do cp -f $$source ./backup ; done
restore:
@cp -f ./backup/makefile .
@cp -f ./backup/test.l .
@cp -f ./backup/test.y .
@cp -f ./backup/$(SOURCES:.c=.txt)
@for header in $(HEADERS) ; do cp -f ./backup/$$header . ; done
@for source in $(SOURCES) ; do cp -f ./backup/$$source . ; done
dist: backup
@mv backup $(PACKAGE)
@tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)/*
@rm -f $(PACKAGE)/*
@rmdir $(PACKAGE)
install: all
@mkdir -p $(PREFIX)/libraries
@cp $(LIBRARY) $(PREFIX)/libraries
@mkdir -p $(PREFIX)/headers/$(PACKAGE)
@for header in $(HEADERS) ; do cp $$header $(PREFIX)/headers/$(PACKAGE) ; done
-include $(DEPENDENCIES)