blob: 2e61c9a0bf5617d20f386ebca7bb8be01ebfec7d [file] [log] [blame]
#
############################################################################
# (C) Copyright 2008 Novell, Inc. All Rights Reserved.
#
# GPLv2: This program is free software; you can redistribute it
# and/or modify it under the terms of version 2 of the GNU General
# Public License as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
############################################################################
makedir := $(dir $(lastword $(MAKEFILE_LIST)))
include $(makedir)/gnu.mk
LIBS += -lrt -lm -lpthread -lncurses
INC += -I.
ifeq ($(PN),)
name := $(basename $(notdir $(PWD)))
else
name := $(PN)
endif
target := $(shell uname -m)
objdir :=.$(target)
sources := $(wildcard *.c)
headers := $(wildcard *.h)
objects := $(addprefix $(objdir)/, $(sources:.c=.o))
opus := $(objdir)/$(name)
bin = $(DESTDIR)$(sbindir)
# -E stop after preprocessor
# -pg -O -g -DUNOPT -DNDEBUG
# CFLAGS+=-g -O -Wall -Wstrict-prototypes -Werror
CFLAGS +=-g -O -rdynamic \
-Wall -Wstrict-prototypes -Werror \
-D_F=\"$(basename $(notdir $(<)))\" \
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \
$(.INCLUDES) $(INC) \
objects += $(objdir)/syscall.o
$(opus):$(objects) $(LIBS)
$(CC) $(CFLAGS) $(objects) $(LIBS) -o $(opus)
$(objdir)/%.o : %.c Makefile $(headers)
@ mkdir -p $(objdir)
$(CC) $(CFLAGS) -c $< -o $@
$(objdir)/syscall.o : $(objdir)/syscall.c
$(CC) $(CFLAGS) -c $< -o $@
$(objdir)/syscall.c : Makefile syscall.awk
@ mkdir -p $(objdir)
echo '#include <sys/syscall.h>' | $(CC) -E -dD - -P | ./syscall.awk >$@
.PHONEY: install clean test
install:
mkdir -p $(bin)
cp $(opus) $(bin)
clean:
@rm -fr $(objdir)
@rm -f *.core
@rm -f *.out
@rm -f $(bin)/$(opus)
test:
@ echo "Test"
@ echo "sources=$(sources)"
@ echo "objects=$(objects)"
@ echo "CFLAGS=$(CFLAGS)"
@ echo "BOARD=$(BOARD)"
@ echo "bin=$(bin)"
@ echo "objdir=$(objdir)"
@ echo "opus=$(opus)"
@ echo "name=$(name)"