fix per recent envytools updates
[pscnv.git] / pscnv / CMakeLists.txt
blob19c71f6ed92ebfe9b6b1c4c355d797d644896f22
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
49 set(sources
50     nouveau_drv
51     nouveau_state
52     nouveau_irq
53     nouveau_bios
54     nouveau_hw
55     nouveau_mem
56     nouveau_i2c
57     nouveau_calc
58     nouveau_dp
59     nouveau_connector
60     nouveau_display
61     nouveau_fbcon
62     nouveau_dma
63     nouveau_pm
64     nouveau_volt
65     nouveau_perf
66     nouveau_temp
67     nv04_tv
68     nv04_dfp
69     nv04_dac
70     nv04_timer
71     nv10_gpio
72     nv50_gpio
73     nv50_grctx
74     nv50_display
75     nv50_crtc
76     nv50_cursor
77     nv50_calc
78     nv50_dac
79     nv50_sor
80     nv04_pm
81     nv50_pm
82     nva3_pm
83     pscnv_mm
84     pscnv_mem
85     pscnv_vm
86     pscnv_gem
87     pscnv_ioctl
88     pscnv_ramht
89     pscnv_chan
90     pscnv_sysram
91     nv50_vram
92     nv50_vm
93     nv50_chan
94     nv50_fifo
95     nv50_graph
96     nv84_crypt
97     nv98_crypt
98     nvc0_vram
99     nvc0_vm
100     nvc0_chan
101     nvc0_fifo
102     nvc0_copy
103     nvc0_graph
104     nvc0_grctx
105     nv40_counter
106     )
108 #set(makefile "${CMAKE_CURRENT_BINARY_DIR}/build/Makefile")
110 #set(all_sources "")
111 #foreach(src ${sources})
112 #    set(all_sources "${all_sources} ${src}.o")
113 #endforeach()
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")
119 #endforeach()
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")
128 set(real_sources)
129 foreach(src ${sources})
130     list(APPEND real_sources "${CMAKE_CURRENT_SOURCE_DIR}/${src}.c")
131 endforeach()
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")