Force coreboot mconf to create temp files in the output directory
[coreboot.git] / util / nvramtool / Makefile
index 5d9ddc0619f052fac60c318cd39fafc1fdb8a183..a75c70da5ce6fe54bedb66e9c5f475f0eeef99b4 100644 (file)
@@ -1,28 +1,69 @@
-# $Id$
+##
+## Makefile for nvram utility
+##
+## (C) 2005-2008 coresystems GmbH
+## written by Stefan Reinauer <stepan@coresystems.de>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; version 2 of the License.
+##
+## 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.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+##
 
-PROJECT = nvramtool
-CC = gcc
-CFLAGS = -O2 -W -Wall
-LDFLAGS =
-OBJS = common.o compute_ip_checksum.o hexdump.o cmos_lowlevel.o \
-       reg_expr.o layout.o layout_file.o lbtable.o cmos_ops.o input_file.o \
-       opts.o nvramtool.o
-HEADERS = common.h ip_checksum.h coreboot_tables.h hexdump.h \
-          cmos_lowlevel.h reg_expr.h layout.h layout_file.h lbtable.h \
-          cmos_ops.h input_file.h opts.h
+PROGRAM = nvramtool
 
-all: nvramtool man
+CC      = gcc
+STRIP  = strip
+INSTALL = /usr/bin/install
+PREFIX  = /usr/local
+CFLAGS  = -O2 -g -Wall -W -I.
+#CFLAGS  = -Os -Wall
 
-nvramtool: $(OBJS)
-       $(CC) $(LDFLAGS) -o $@ $(OBJS)
+CLI_OBJS = cli/nvramtool.o cli/opts.o
 
-man: nvramtool.1.gz
+OBJS =  cmos_lowlevel.o cmos_ops.o common.o compute_ip_checksum.o \
+       hexdump.o input_file.o layout.o accessors/layout-text.o accessors/layout-bin.o lbtable.o   \
+       reg_expr.o cbfs.o accessors/cmos-hw-unix.o accessors/cmos-mem.o
 
-$(OBJS): $(HEADERS)
+OBJS += $(CLI_OBJS)
 
-nvramtool.1.gz: nvramtool.1
-       gzip -c --best nvramtool.1 > nvramtool.1.gz
+OS_ARCH        = $(shell uname)
+ifeq ($(OS_ARCH), Darwin)
+LDFLAGS = -framework DirectHW
+endif
+ifeq ($(OS_ARCH), NetBSD)
+LDFLAGS = -l$(shell uname -p)
+endif
+
+all: dep $(PROGRAM)
+
+$(PROGRAM): $(OBJS)
+       $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(CFLAGS)
+       $(STRIP) $(STRIP_ARGS) $(PROGRAM)
 
 clean:
-       rm -f *.o nvramtool nvramtool.1.gz
+       rm -f $(PROGRAM) $(OBJS)
+
+distclean: clean
+       rm -f .dependencies
+
+dep:
+       @$(CC) -MM *.c > .dependencies
+
+install: $(PROGRAM)
+       mkdir -p $(DESTDIR)$(PREFIX)/sbin
+       $(INSTALL) $(PROGRAM) $(DESTDIR)$(PREFIX)/sbin
+       mkdir -p $(DESTDIR)$(PREFIX)/share/man/man8
+       $(INSTALL) cli/$(PROGRAM).8 $(DESTDIR)$(PREFIX)/share/man/man8
+
+.PHONY: all clean distclean dep
 
+-include .dependencies