############################################################################# ## __________ __ ___. ## 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)