私はこれをたくさん行うプロジェクトを持っています
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
// do some legacy stuff
#else
// do current stuff
#endif
は次のようにKERNEL_VERSION
定義されます
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
現在のバージョンに関係のない定義を削除したいのですが、ツールのようなものはマクロをsunifdef
評価しないので、KERNEL_VERSION
sunifdef --replace -DKERNEL_VERSION\(a,b,c\)=\(\(\(a\)\<\<16\)+\(\(b\)\<\<8\)+\(c\)\) -DLINUX_VERSION_CODE=3.13.1 *
メッセージで失敗します
sunifdef: エラー 0x04200: 引数のガベージ "-DKERNEL_VERSION(a,b,c)=(((a)<<16)+((b)<<8)+(c))"
どうすればこれを回避できますか?