summaryrefslogtreecommitdiff
path: root/sys/modules
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2010-07-20 20:15:32 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2010-07-20 20:15:32 +0000
commitbf086aa2a8b35fce4e3db70ce36738303e9e4cba (patch)
tree3a8d70c82fae00b1f9dce4624cfcdb6fd9678a21 /sys/modules
parent967c5b34b32fe94707baaac3064b7bbf7c0a4942 (diff)
Notes
Diffstat (limited to 'sys/modules')
-rw-r--r--sys/modules/acpi/acpi/Makefile19
1 files changed, 16 insertions, 3 deletions
diff --git a/sys/modules/acpi/acpi/Makefile b/sys/modules/acpi/acpi/Makefile
index 6fa36ffcd707..84352ae7edea 100644
--- a/sys/modules/acpi/acpi/Makefile
+++ b/sys/modules/acpi/acpi/Makefile
@@ -99,15 +99,28 @@ SRCS+= assym.s madt.c
CLEANFILES+= acpi_wakecode.bin acpi_wakecode.h acpi_wakecode.o
.if ${MACHINE_ARCH} == "amd64"
-SRCS+= acpi_switch.S opt_global.h
+.if !defined(KERNBUILDDIR)
+CFLAGS+=-DSMP
+.endif
+SRCS+= acpi_switch.S acpi_wakedata.h
CLEANFILES+= acpi_wakedata.h
ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS}
acpi_switch.o: acpi_switch.S
${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}
-.endif
-
+acpi_wakecode.o: acpi_wakecode.S assym.s
+ ${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}
+acpi_wakecode.bin: acpi_wakecode.o
+ objcopy -S -O binary acpi_wakecode.o ${.TARGET}
+acpi_wakecode.h: acpi_wakecode.bin
+ file2c -sx 'static char wakecode[] = {' '};' < acpi_wakecode.bin > \
+ ${.TARGET}
+acpi_wakedata.h: acpi_wakecode.o
+ nm -n --defined-only ${.ALLSRC} | while read offset dummy what; do \
+ echo "#define $${what} 0x$${offset}"; done > ${.TARGET}
+.else
acpi_wakecode.h: acpi_wakecode.S assym.s
${MAKE} -f ${.CURDIR}/../../../${MACHINE_ARCH}/acpica/Makefile \
MAKESRCPATH=${.CURDIR}/../../../${MACHINE_ARCH}/acpica
+.endif
.include <bsd.kmod.mk>