]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/boot/usb/Makefile
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / boot / usb / Makefile
1 #
2 # $FreeBSD$
3 #
4 # Copyright (c) 2013 Hans Petter Selasky. All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 #    notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 #    notice, this list of conditions and the following disclaimer in the
13 #    documentation and/or other materials provided with the distribution.
14 #
15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 # SUCH DAMAGE.
26 #
27
28 T=${.CURDIR}/tools
29 S=${.CURDIR}/../..
30
31 .PATH: \
32         ${.CURDIR} \
33         ${S}/dev/usb \
34         ${S}/dev/usb/controller \
35         ${S}/dev/usb/serial \
36         ${S}/dev/usb/storage \
37         ${S}/dev/usb/template
38
39 LIB=            usbboot
40 INTERNALLIB=
41 OBJCOPY?=       objcopy
42 SYSCC?=         cc
43
44 CFLAGS+=        -DBOOTPROG=\"usbloader\"
45 CFLAGS+=        -DUSB_GLOBAL_INCLUDE_FILE=\"bsd_global.h\"
46 CFLAGS+=        -ffunction-sections -fdata-sections
47 CFLAGS+=        -ffreestanding
48 CFLAGS+=        -Wformat -Wall
49 CFLAGS+=        -I${S}
50 CFLAGS+=        -I${T}
51 CFLAGS+=        -I${.CURDIR}
52 CFLAGS+=        -g
53
54 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
55 CFLAGS+=        -march=i386
56 CFLAGS+=        -mpreferred-stack-boundary=2
57 .endif
58 .if ${MACHINE_CPUARCH} == "amd64"
59 CFLAGS+=        -m32
60 .endif
61
62 #
63 # Single threaded BSD kernel
64 #
65 SRCS+=  bsd_kernel.c
66
67 #
68 # BUSSPACE implementation
69 #
70 SRCS+=  bsd_busspace.c
71
72 #
73 # BUSDMA implementation
74 #
75 SRCS+=  usb_busdma_loader.c
76
77 #
78 # USB controller drivers
79 #
80 SRCS+=  at91dci.c
81 SRCS+=  atmegadci.c
82 SRCS+=  avr32dci.c
83 SRCS+=  dwc_otg.c
84 SRCS+=  ehci.c
85 SRCS+=  musb_otg.c
86 SRCS+=  ohci.c
87 SRCS+=  uhci.c
88 SRCS+=  uss820dci.c
89 SRCS+=  xhci.c
90 SRCS+=  usb_controller.c
91
92 CFLAGS += -DUSB_PROBE_LIST="\"xhci\", \"ehci\", \"uhci\", \"ohci\""
93
94 #
95 # USB core and templates
96 #
97 SRCS+=  usb_core.c
98 SRCS+=  usb_debug.c
99 SRCS+=  usb_device.c
100 SRCS+=  usb_dynamic.c
101 SRCS+=  usb_error.c
102 SRCS+=  usb_handle_request.c
103 SRCS+=  usb_hid.c
104 SRCS+=  usb_hub.c
105 SRCS+=  usb_lookup.c
106 SRCS+=  usb_msctest.c
107 SRCS+=  usb_parse.c
108 SRCS+=  usb_request.c
109 SRCS+=  usb_transfer.c
110 SRCS+=  usb_util.c
111 SRCS+=  usb_template.c
112 SRCS+=  usb_template_cdce.c
113 SRCS+=  usb_template_msc.c
114 SRCS+=  usb_template_mtp.c
115 SRCS+=  usb_template_modem.c
116 SRCS+=  usb_template_mouse.c
117 SRCS+=  usb_template_kbd.c
118 SRCS+=  usb_template_audio.c
119 SRCS+=  sysinit_data.c
120 SRCS+=  sysuninit_data.c
121
122 CLEANFILES+= sysinit
123 CLEANFILES+= sysinit.bin
124 CLEANFILES+= sysinit_data.c
125 CLEANFILES+= sysuninit_data.c
126
127 CLEANFILES+= ${SRCS:C/\.c/.osys/g}
128
129 .include <bsd.lib.mk>
130
131 #
132 # SYSINIT() and SYSUNINIT() handling
133 #
134 sysinit: ${T}/sysinit.c
135         ${SYSCC} -Wall -o ${.TARGET} ${.ALLSRC}
136
137 sysinit_data.c: sysinit.bin sysinit
138         ${.OBJDIR}/sysinit -i sysinit.bin -o ${.TARGET} -k sysinit -s sysinit_data
139
140 sysuninit_data.c: sysinit.bin sysinit
141         ${.OBJDIR}/sysinit -i sysinit.bin -o ${.TARGET} -R -k sysuninit -s sysuninit_data
142
143 .for F in ${OBJS}
144 ${F}sys: ${F}
145         ${OBJCOPY} -j ".debug.sysinit" -O binary ${F} ${.TARGET}
146         [ -f ${.TARGET} ] || touch ${.TARGET}
147 .endfor
148
149 sysinit.bin: ${OBJS:C/\.o/.osys/g:C/sysinit_data.osys//g:C/sysuninit_data.osys//g}
150         cat ${.ALLSRC} > sysinit.bin