2 set(sys_src "/lib/modules/${CMAKE_SYSTEM_VERSION}/build")
4 # generating pscnv_kapi.h
5 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/pscnv_kapi.h"
6 COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/kapitest.sh" "${sys_src}"
7 > "${CMAKE_CURRENT_SOURCE_DIR}/pscnv_kapi.h"
8 2> "${CMAKE_CURRENT_BINARY_DIR}/kapitest.err"
9 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kapitest.sh"
10 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
12 # generating nv98_crypt.fuc.h
13 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/nv98_crypt.fuc.h"
14 COMMAND envyas -m fuc -V fuc0 -F crypt -a "${CMAKE_CURRENT_SOURCE_DIR}/nv98_crypt.fuc"
15 -o "${CMAKE_CURRENT_SOURCE_DIR}/nv98_crypt.fuc.h"
16 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/nv98_crypt.fuc"
17 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
19 # generating nvc0_grhub.fuc.h
20 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grhub.fuc.h"
21 COMMAND m4 "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grhub.fuc" | envyas -a -w -m fuc -V fuc3
22 -o "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grhub.fuc.h"
23 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grhub.fuc"
24 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
26 # generating nvc0_grgpc.fuc.h
27 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grgpc.fuc.h"
28 COMMAND m4 "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grgpc.fuc" | envyas -a -w -m fuc -V fuc3
29 -o "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grgpc.fuc.h"
30 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grgpc.fuc"
31 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
33 # generating nvc0_copy.fuc.h
34 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_copy.fuc.h"
35 COMMAND m4 -DNVC0 "${CMAKE_CURRENT_SOURCE_DIR}/nva3_copy.fuc" | envyas -a -w -m fuc -V fuc3
36 -o "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_copy.fuc.h"
37 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/nva3_copy.fuc"
38 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
40 # generating nvc0_pdaemon.fuc.h
41 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_pdaemon.fuc.h"
42 COMMAND envyas -a "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_pdaemon.fuc" -w -m fuc -V fuc3
43 -o "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_pdaemon.fuc.h"
44 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_pdaemon.fuc"
45 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
48 # generating makefile for building kernel module
108 #set(makefile "${CMAKE_CURRENT_BINARY_DIR}/build/Makefile")
111 #foreach(src ${sources})
112 # set(all_sources "${all_sources} ${src}.o")
115 #file(WRITE "${makefile}" "pscnv-y := ${all_sources}\n")
117 #foreach(src ${sources})
118 # file(APPEND "${makefile}" "${src}.o: ${CMAKE_CURRENT_SOURCE_DIR}/${src}.c\n")
121 #file(APPEND "${makefile}" "pscnv-$(CONFIG_DRM_NOUVEAU_DEBUG) += nouveau_debugfs.o\n")
122 #file(APPEND "${makefile}" "pscnv-$(CONFIG_COMPAT) += nouveau_ioc32.o\n")
123 #file(APPEND "${makefile}" "pscnv-$(CONFIG_DRM_NOUVEAU_BACKLIGHT) += nouveau_backlight.o\n")
124 #file(APPEND "${makefile}" "pscnv-$(CONFIG_ACPI) += nouveau_acpi.o\n")
126 #file(APPEND "${makefile}" "obj-m := pscnv.o\n")
129 foreach(src ${sources})
130 list(APPEND real_sources "${CMAKE_CURRENT_SOURCE_DIR}/${src}.c")
133 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/pscnv.ko"
134 COMMAND "${CMAKE_MAKE_PROGRAM}" -C "${sys_src}" "M=${CMAKE_CURRENT_SOURCE_DIR}"
135 DEPENDS ${real_sources}
136 "${CMAKE_CURRENT_SOURCE_DIR}/pscnv_kapi.h"
137 "${CMAKE_CURRENT_SOURCE_DIR}/nv98_crypt.fuc.h"
138 "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grhub.fuc.h"
139 "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_grgpc.fuc.h"
140 "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_copy.fuc.h"
141 "${CMAKE_CURRENT_SOURCE_DIR}/nvc0_pdaemon.fuc.h"
142 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
144 add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pscnv.ko"
145 COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/pscnv.ko"
146 "${CMAKE_CURRENT_BINARY_DIR}/pscnv.ko"
147 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/pscnv.ko")
149 add_custom_target(pscnv_ko ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pscnv.ko")