summaryrefslogtreecommitdiffstats
path: root/bsd_eth_drivers/libbsdport/Makefile
blob: fbf9f35ebbccd24e606902bb03e33436b29f7258 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#
#  Makefile.lib,v 1.5 2000/06/12 15:00:14 joel Exp
#
# Templates/Makefile.lib
#       Template library Makefile
#

LIBNAME=libbsdport.a
LIB=${ARCH}/${LIBNAME}

# C and C++ source names, if any, go here -- minus the .c or .cc
C_PIECES=rtems_callout rtems_taskqueue rtems_udelay ifstuff devicet alldrv
C_PIECES+=contigmalloc sysbus malloc ifmedia
C_FILES=$(C_PIECES:%=%.c)
C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)

CC_PIECES=
CC_FILES=$(CC_PIECES:%=%.cc)
CC_O_FILES=$(CC_PIECES:%=${ARCH}/%.o)

H_FILES=libbsdport_api.h rtems_verscheck.h

LINKS+=sys/taskqueue.h
LINKS+=sys/bus.h
LINKS+=sys/mutex.h
LINKS+=bsp/rtems_verscheck.h

DUMMYHEADERS+=dummyheaders/machine/bus.h
DUMMYHEADERS+=dummyheaders/machine/resource.h
DUMMYHEADERS+=dummyheaders/dev/pci/pcivar.h
DUMMYHEADERS+=dummyheaders/dev/pci/pcireg.h
DUMMYHEADERS+=dummyheaders/dev/mii/miivar.h
DUMMYHEADERS+=dummyheaders/sys/module.h
DUMMYHEADERS+=dummyheaders/sys/rman.h
DUMMYHEADERS+=dummyheaders/sys/kthread.h
DUMMYHEADERS+=dummyheaders/sys/endian.h
DUMMYHEADERS+=dummyheaders/net/if_vlan_var.h
DUMMYHEADERS+=dummyheaders/netinet/ip6.h
DUMMYHEADERS+=dummyheaders/vm/pmap.h
DUMMYHEADERS+=dummyheaders/miibus_if.h

# Assembly source names, if any, go here -- minus the .S
S_PIECES=
S_FILES=$(S_PIECES:%=%.S)
S_O_FILES=$(S_FILES:%.S=${ARCH}/%.o)

SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)

all:

depend: ${LINKS}

include $(RTEMS_MAKEFILE_PATH)/Makefile.inc

include $(RTEMS_CUSTOM)
include $(RTEMS_ROOT)/make/lib.cfg

#
# Add local stuff here using +=
#

DEFINES  +=
CPPFLAGS += -I.
CFLAGS   +=

#
# Add your list of files to delete here.  The config files
#  already know how to delete some stuff, so you may want
#  to just run 'make clean' first to see what gets missed.
#  'make clobber' already includes 'make clean'
#

CLEAN_ADDITIONS += 
CLOBBER_ADDITIONS += dummyheaders
CLOBBER_ADDITIONS += $(sort $(foreach n,$(LINKS),$(firstword $(subst /, ,$(n)))))

all: ${DUMMYHEADERS} ${LINKS} ${ARCH} $(SRCS) $(LIB)

$(LIB): ${OBJS}
	$(make-library)

dummyheaders/%:
	@if [ ! -d `dirname $@` ] ; then mkdir -p `dirname $@`; fi
	@touch $@

# for each name listed in LINKS, create parent directories (if needed)
# and a symlink to file in .
# E.g., LINKS=a/b/c.h
# creates a/b/c.h -> ../../c.h
$(LINKS):
	@if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@); fi
	@ln -s `echo $@ | sed -e 's%[^/]\+[/]\+%../%g'` $@

ifndef RTEMS_SITE_INSTALLDIR
RTEMS_SITE_INSTALLDIR = $(PROJECT_RELEASE)
endif

ifndef RTEMS_SITE_BSP_INSTALLDIR
RTEMS_SITE_BSP_INSTALLDIR = $(RTEMS_SITE_INSTALLDIR)
endif

${RTEMS_SITE_INSTALLDIR}/include/bsp \
${RTEMS_SITE_INSTALLDIR}/lib \
${RTEMS_SITE_INSTALLDIR}/bin:
	test -d $@ || mkdir -p $@

# Install the program(s), appending _g or _p as appropriate.
# for include files, just use $(INSTALL_CHANGE)
#

install:  all $(RTEMS_SITE_INSTALLDIR)/lib $(RTEMS_SITE_INSTALLDIR)/include/bsp
	$(INSTALL_VARIANT) -m 644 ${LIB} ${RTEMS_SITE_INSTALLDIR}/lib
	$(INSTALL_CHANGE)  -m 644 ${H_FILES} ${RTEMS_SITE_INSTALLDIR}/include/bsp