Makefile.intel.shared revision 4135:69588295f961
1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9# or http://www.opensolaris.org/os/licensing. 10# See the License for the specific language governing permissions 11# and limitations under the License. 12# 13# When distributing Covered Code, include this CDDL HEADER in each 14# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15# If applicable, add the following below this CDDL HEADER, with the 16# fields enclosed by brackets "[]" replaced with your own identifying 17# information: Portions Copyright [yyyy] [name of copyright owner] 18# 19# CDDL HEADER END 20# 21 22# 23# Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# 26# ident "%Z%%M% %I% %E% SMI" 27# 28 29# 30# This makefile contains the common definitions for all intel 31# implementation architecture independent modules. 32# 33 34# 35# Machine type (implementation architecture): 36# 37PLATFORM = i86pc 38 39# 40# Everybody needs to know how to build modstubs.o and to locate unix.o. 41# Note that unix.o must currently be selected from among the possible 42# "implementation architectures". Note further, that unix.o is only 43# used as an optional error check for undefines so (theoretically) 44# any "implementation architectures" could be used. We choose i86pc 45# because it is the reference port. 46# 47UNIX_DIR = $(UTSBASE)/i86pc/unix 48GENLIB_DIR = $(UTSBASE)/intel/genunix 49GENASSYM_DIR = $(UTSBASE)/intel/genassym 50IPDRV_DIR = $(UTSBASE)/intel/ip 51MODSTUBS_DIR = $(UNIX_DIR) 52DSF_DIR = $(UTSBASE)/$(PLATFORM)/genassym 53LINTS_DIR = $(OBJS_DIR) 54LINT_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR) 55 56UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o 57GENLIB = $(GENLIB_DIR)/$(OBJS_DIR)/libgenunix.so 58MODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o 59LINT_LIB = $(UTSBASE)/i86pc/lint-libs/$(OBJS_DIR)/llib-lunix.ln 60GEN_LINT_LIB = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln 61 62# 63# Include the makefiles which define build rule templates, the 64# collection of files per module, and a few specific flags. Note 65# that order is significant, just as with an include path. The 66# first build rule template which matches the files name will be 67# used. By including these in order from most machine dependent 68# to most machine independent, we allow a machine dependent file 69# to be used in preference over a machine independent version 70# (Such as a machine specific optimization, which preserves the 71# interfaces.) 72# 73include $(UTSTREE)/intel/Makefile.files 74include $(UTSTREE)/common/Makefile.files 75 76# 77# ----- TRANSITIONAL SECTION -------------------------------------------------- 78# 79 80# 81# Not everything which *should* be a module is a module yet. The 82# following is a list of such objects which are currently part of 83# genunix but which might someday become kmods. This must be 84# defined before we include Makefile.uts, or else genunix's build 85# won't be as parallel as we might like. 86# 87NOT_YET_KMODS = $(OLDPTY_OBJS) $(PTY_OBJS) $(MOD_OBJS) 88 89# 90# ----- END OF TRANSITIONAL SECTION ------------------------------------------- 91# 92# Include machine independent rules. Note that this does not imply 93# that the resulting module from rules in Makefile.uts is machine 94# independent. Only that the build rules are machine independent. 95# 96include $(UTSBASE)/Makefile.uts 97 98# 99# The following must be defined for all implementations: 100# 101MODSTUBS = $(UTSBASE)/intel/ia32/ml/modstubs.s 102 103# 104# Define supported builds 105# 106DEF_BUILDS = $(DEF_BUILDS64) $(DEF_BUILDS32) 107ALL_BUILDS = $(ALL_BUILDS64) $(ALL_BUILDS32) 108 109# 110# x86 or amd64 inline templates 111# 112INLINES_32 = $(UTSBASE)/intel/ia32/ml/ia32.il 113INLINES_64 = $(UTSBASE)/intel/amd64/ml/amd64.il 114INLINES += $(INLINES_$(CLASS)) 115 116# 117# kernel-specific optimizations; override default in Makefile.master 118# 119 120CFLAGS_XARCH_32 = $(i386_CFLAGS) 121CFLAGS_XARCH_64 = $(amd64_CFLAGS) 122CFLAGS_XARCH = $(CFLAGS_XARCH_$(CLASS)) 123 124COPTFLAG_32 = $(COPTFLAG) 125COPTFLAG_64 = $(COPTFLAG64) 126COPTIMIZE = $(COPTFLAG_$(CLASS)) 127 128CFLAGS = $(CFLAGS_XARCH) 129CFLAGS += $(COPTIMIZE) 130CFLAGS += $(INLINES) -D_ASM_INLINES 131CFLAGS += $(CCMODE) 132CFLAGS += $(SPACEFLAG) 133CFLAGS += $(CCUNBOUND) 134CFLAGS += $(CFLAGS_uts) 135 136ASFLAGS_XARCH_32 = $(i386_ASFLAGS) 137ASFLAGS_XARCH_64 = $(amd64_ASFLAGS) 138ASFLAGS_XARCH = $(ASFLAGS_XARCH_$(CLASS)) 139 140ASFLAGS += $(ASFLAGS_XARCH) 141AS_INC_PATH += -I$(GENASSYM_DIR)/$(OBJS_DIR) 142 143# 144# Define the base directory for installation. 145# 146BASE_INS_DIR = $(ROOT) 147 148# 149# Debugging level 150# 151# Special knowledge of which special debugging options affect which 152# file is used to optimize the build if these flags are changed. 153# 154DEBUG_DEFS_OBJ32 = 155DEBUG_DEFS_DBG32 = -DDEBUG 156DEBUG_DEFS_OBJ64 = 157DEBUG_DEFS_DBG64 = -DDEBUG 158DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE)) 159 160DEBUG_COND_OBJ32 :sh = echo \\043 161DEBUG_COND_DBG32 = 162DEBUG_COND_OBJ64 :sh = echo \\043 163DEBUG_COND_DBG64 = 164IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/ 165 166$(IF_DEBUG_OBJ)syscall.o := DEBUG_DEFS += -DSYSCALLTRACE 167$(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=1 168 169# 170# This rather strange collection of definitions ensures that lint sees 171# 'struct cpu' containing a fully declared embedded 'struct machcpu' 172# 173# There's something deeply dissatisfying about this. 174# 175LINTMACHFLAGS = -D_MACHDEP -I../../i86pc 176$(LINTS_DIR)/kcpc.ln := LINTFLAGS += $(LINTMACHFLAGS) 177$(LINTS_DIR)/kdi.ln := LINTFLAGS += $(LINTMACHFLAGS) 178$(LINTS_DIR)/msacct.ln := LINTFLAGS += $(LINTMACHFLAGS) 179$(LINTS_DIR)/thread.ln := LINTFLAGS += $(LINTMACHFLAGS) 180 181# 182# Build `options'. These are entirely historical and the need for these 183# is completely removed by the module technology. 184# 185OPTION_DEFS = -DC2_AUDIT 186 187# 188# Collect the preprocessor definitions to be associated with *all* 189# files. 190# 191ALL_DEFS = $(DEBUG_DEFS) $(OPTION_DEFS) 192 193# 194# The kernels modules which are "implementation architecture" 195# specific for this machine are enumerated below. Note that most 196# of these modules must exist (in one form or another) for each 197# architecture. 198# 199# Common Drivers (usually pseudo drivers) (/kernel/drv) 200# DRV_KMODS are built both 32-bit and 64-bit 201# DRV_KMODS_32 are built only 32-bit 202# DRV_KMODS_64 are built only 64-bit 203# 204DRV_KMODS += aac 205DRV_KMODS += aggr 206DRV_KMODS += ahci 207DRV_KMODS += amd64_gart 208DRV_KMODS += amr 209DRV_KMODS += agpgart 210DRV_KMODS += agptarget 211DRV_KMODS += arp 212DRV_KMODS += asy 213DRV_KMODS += ata 214DRV_KMODS += ath 215DRV_KMODS += audio810 216DRV_KMODS += audiohd 217DRV_KMODS += audioixp 218DRV_KMODS += bl 219DRV_KMODS += bge 220DRV_KMODS += bofi 221DRV_KMODS += bscbus 222DRV_KMODS += bscv 223DRV_KMODS += clone 224DRV_KMODS += cmdk 225DRV_KMODS += cn 226DRV_KMODS += conskbd 227DRV_KMODS += consms 228DRV_KMODS += cpuid 229DRV_KMODS += crypto 230DRV_KMODS += cryptoadm 231DRV_KMODS += devinfo 232DRV_KMODS += dld 233DRV_KMODS_32 += dnet 234DRV_KMODS += dump 235DRV_KMODS += ecpp 236DRV_KMODS += fd 237DRV_KMODS += fdc 238DRV_KMODS += fssnap 239DRV_KMODS += i8042 240DRV_KMODS += i915 241DRV_KMODS += icmp 242DRV_KMODS += icmp6 243DRV_KMODS += ip 244DRV_KMODS += ip6 245DRV_KMODS += ipf 246DRV_KMODS += ippctl 247DRV_KMODS += ipsecah 248DRV_KMODS += ipsecesp 249DRV_KMODS += ipw 250DRV_KMODS += iwi 251DRV_KMODS += iwscn 252DRV_KMODS += kb8042 253DRV_KMODS += keysock 254DRV_KMODS += kssl 255DRV_KMODS += kstat 256DRV_KMODS += ksyms 257DRV_KMODS += kmdb 258DRV_KMODS += llc1 259DRV_KMODS += lofi 260DRV_KMODS += log 261DRV_KMODS += logi 262DRV_KMODS += logindmux 263DRV_KMODS += mm 264DRV_KMODS += mouse8042 265DRV_KMODS_32 += mscsi 266DRV_KMODS_32 += msm 267DRV_KMODS += nca 268DRV_KMODS += openeepr 269DRV_KMODS += pci_pci 270DRV_KMODS += pcic 271DRV_KMODS += pcie_pci 272DRV_KMODS += physmem 273DRV_KMODS += pcan 274DRV_KMODS += pcwl 275DRV_KMODS += pm 276DRV_KMODS += poll 277DRV_KMODS += pool 278DRV_KMODS += power 279DRV_KMODS += pseudo 280DRV_KMODS += ptc 281DRV_KMODS += ptm 282DRV_KMODS += pts 283DRV_KMODS += ptsl 284DRV_KMODS += ramdisk 285DRV_KMODS += random 286DRV_KMODS += rds 287DRV_KMODS += rpcib 288DRV_KMODS += rsm 289DRV_KMODS += rts 290DRV_KMODS += sad 291DRV_KMODS += sctp 292DRV_KMODS += sctp6 293DRV_KMODS += sd 294DRV_KMODS += sgen 295DRV_KMODS += si3124 296DRV_KMODS += smbios 297DRV_KMODS += spdsock 298DRV_KMODS += sppp 299DRV_KMODS += sppptun 300DRV_KMODS += st 301DRV_KMODS += sy 302DRV_KMODS += sysevent 303DRV_KMODS += sysmsg 304DRV_KMODS += tcp 305DRV_KMODS += tcp6 306DRV_KMODS += tl 307DRV_KMODS += tnf 308DRV_KMODS += udp 309DRV_KMODS += udp6 310DRV_KMODS += vgatext 311DRV_KMODS += vni 312DRV_KMODS += wc 313DRV_KMODS += winlock 314DRV_KMODS += wpi 315DRV_KMODS += xge 316DRV_KMODS += zcons 317DRV_KMODS += chxge 318 319# 320# Don't build some of these for OpenSolaris, since they will be 321# replaced by binaries that are signed by Sun Release Engineering. 322# 323$(CLOSED_BUILD)DRV_KMODS += dca 324 325$(CLOSED_BUILD)CLOSED_DRV_KMODS += audioens 326$(CLOSED_BUILD)CLOSED_DRV_KMODS += audiovia823x 327$(CLOSED_BUILD)CLOSED_DRV_KMODS += bmc 328$(CLOSED_BUILD)CLOSED_DRV_KMODS += elxl 329$(CLOSED_BUILD)CLOSED_DRV_KMODS += glm 330$(CLOSED_BUILD)CLOSED_DRV_KMODS += iprb 331$(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2 332$(CLOSED_BUILD)CLOSED_DRV_KMODS += marvell88sx 333$(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt 334$(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += ncrs 335$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcn 336$(CLOSED_BUILD)CLOSED_DRV_KMODS += rtls 337$(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += sbpro 338 339# 340# Common code drivers 341# 342 343DRV_KMODS += e1000g 344DRV_KMODS += rge 345$(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb 346 347# 348# DTrace and DTrace Providers 349# 350DRV_KMODS += dtrace 351DRV_KMODS += fbt 352DRV_KMODS += lockstat 353DRV_KMODS += profile 354DRV_KMODS += sdt 355DRV_KMODS += systrace 356DRV_KMODS += fasttrap 357 358# 359# I/O framework test drivers 360# 361DRV_KMODS += pshot 362DRV_KMODS += gen_drv 363DRV_KMODS += tvhci tphci tclient 364DRV_KMODS += emul64 365 366# 367# Machine Specific Driver Modules (/kernel/drv): 368# 369DRV_KMODS += options 370$(CLOSED_BUILD)CLOSED_DRV_KMODS += scsi_vhci 371 372# 373# PCMCIA specific module(s) 374# 375DRV_KMODS += pcs 376DRV_KMODS += pcata pcmem pcram 377DRV_KMODS += pem 378MISC_KMODS += cardbus 379$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcelx 380$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser 381 382# 383# SCSI Enclosure Services driver 384# 385DRV_KMODS += ses 386 387# 388# USB specific modules 389# 390DRV_KMODS += hid 391DRV_KMODS += hubd 392DRV_KMODS += uhci 393DRV_KMODS += ehci 394DRV_KMODS += ohci 395DRV_KMODS += usb_mid 396DRV_KMODS += usb_ia 397DRV_KMODS += scsa2usb 398DRV_KMODS += usbprn 399DRV_KMODS += ugen 400DRV_KMODS += usbser 401DRV_KMODS += usbsacm 402DRV_KMODS += usbsksp 403DRV_KMODS += usbsprl 404DRV_KMODS += usb_ac 405DRV_KMODS += usb_as 406DRV_KMODS += usbskel 407DRV_KMODS += usbvc 408 409$(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge 410 411# 412# 1394 modules 413# 414MISC_KMODS += s1394 sbp2 415DRV_KMODS += hci1394 scsa1394 416DRV_KMODS += av1394 417DRV_KMODS += dcam1394 418 419# 420# InfiniBand pseudo drivers 421# 422DRV_KMODS += ib ibd rdsib sdp 423 424# 425# LVM modules 426# 427DRV_KMODS += md 428MISC_KMODS += md_stripe md_hotspares md_mirror md_raid md_trans md_notify 429MISC_KMODS += md_sp 430 431# 432# Brand modules 433# 434BRAND_KMODS += sn1_brand lx_brand 435DRV_KMODS += lx_systrace lx_ptm lx_audio 436STRMOD_KMODS += ldlinux 437 438# 439# Exec Class Modules (/kernel/exec): 440# 441EXEC_KMODS += elfexec intpexec javaexec 442 443# 444# Scheduling Class Modules (/kernel/sched): 445# 446SCHED_KMODS += IA RT TS RT_DPTBL TS_DPTBL FSS FX FX_DPTBL 447 448# 449# File System Modules (/kernel/fs): 450# 451FS_KMODS += autofs cachefs ctfs dev devfs fdfs fifofs hsfs lofs 452FS_KMODS += lx_afs lx_proc mntfs namefs nfs objfs zfs 453FS_KMODS += pcfs procfs sockfs specfs tmpfs udfs ufs sharefs 454 455# 456# Streams Modules (/kernel/strmod): 457# 458STRMOD_KMODS += 6to4tun atun bufmod connld dedump ldterm pckt pfmod pipemod 459STRMOD_KMODS += ptem redirmod rpcmod rlmod telmod timod 460STRMOD_KMODS += spppasyn spppcomp 461STRMOD_KMODS += tirdwr ttcompat tun 462STRMOD_KMODS += usbkbm 463STRMOD_KMODS += usbms 464STRMOD_KMODS += usb_ah 465STRMOD_KMODS += drcompat 466STRMOD_KMODS += nattymod 467STRMOD_KMODS += cryptmod 468STRMOD_KMODS += vuid2ps2 469STRMOD_KMODS += vuid3ps2 470STRMOD_KMODS += vuidm3p 471STRMOD_KMODS += vuidm4p 472STRMOD_KMODS += vuidm5p 473 474# 475# 'System' Modules (/kernel/sys): 476# 477SYS_KMODS += c2audit 478SYS_KMODS += doorfs 479SYS_KMODS += exacctsys 480SYS_KMODS += inst_sync 481SYS_KMODS += kaio 482SYS_KMODS += msgsys 483SYS_KMODS += pipe 484SYS_KMODS += portfs 485SYS_KMODS += pset 486SYS_KMODS += semsys 487SYS_KMODS += shmsys 488SYS_KMODS += sysacct 489SYS_KMODS += acctctl 490 491# 492# 'Misc' Modules (/kernel/misc) 493# MISC_KMODS are built both 32-bit and 64-bit 494# MISC_KMODS_32 are built only 32-bit 495# MISC_KMODS_64 are built only 64-bit 496# 497MISC_KMODS += acpica 498MISC_KMODS += agpmaster 499MISC_KMODS += amsrc2 500MISC_KMODS += audiosup 501MISC_KMODS += bootdev 502MISC_KMODS += busra 503MISC_KMODS += cmlb 504MISC_KMODS += consconfig 505MISC_KMODS += ctf 506MISC_KMODS += dadk 507MISC_KMODS += diaudio 508MISC_KMODS += dls 509MISC_KMODS += drm 510MISC_KMODS += fssnap_if 511MISC_KMODS += gda 512MISC_KMODS += gld 513MISC_KMODS += hidparser 514MISC_KMODS += hook 515MISC_KMODS += hpcsvc 516MISC_KMODS += ibcm 517MISC_KMODS += ibdm 518MISC_KMODS += ibmf 519MISC_KMODS += ibtl 520MISC_KMODS += ipc 521MISC_KMODS += kbtrans 522MISC_KMODS += kcf 523MISC_KMODS += kgssapi 524MISC_KMODS += kmech_dummy 525MISC_KMODS += kmech_krb5 526MISC_KMODS += mac 527MISC_KMODS += mixer 528MISC_KMODS += net80211 529MISC_KMODS += nfs_dlboot 530MISC_KMODS += nfssrv 531MISC_KMODS += neti 532MISC_KMODS += pci_autoconfig 533MISC_KMODS += pcicfg 534MISC_KMODS += pciehpc 535MISC_KMODS += pcihp 536MISC_KMODS += pcmcia 537MISC_KMODS += rpcsec 538MISC_KMODS += rpcsec_gss 539MISC_KMODS += rsmops 540MISC_KMODS += sata 541MISC_KMODS += scsi 542MISC_KMODS += strategy 543MISC_KMODS += strplumb 544MISC_KMODS += sysinit 545MISC_KMODS += tem 546MISC_KMODS += tlimod 547MISC_KMODS += usba usba10 usbs49_fw 548 549$(CLOSED_BUILD)CLOSED_MISC_KMODS += amsrc1 550$(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops 551$(CLOSED_BUILD)CLOSED_MISC_KMODS += phx 552 553# 554# Software Cryptographic Providers (/kernel/crypto): 555# 556# Don't build some of these for OpenSolaris, since they will be 557# replaced by binaries that are signed by Sun RE. 558# 559$(CLOSED_BUILD)CRYPTO_KMODS += aes 560$(CLOSED_BUILD)CRYPTO_KMODS += arcfour 561$(CLOSED_BUILD)CRYPTO_KMODS += blowfish 562$(CLOSED_BUILD)CRYPTO_KMODS += des 563CRYPTO_KMODS += md4 564CRYPTO_KMODS += md5 565CRYPTO_KMODS += rsa 566CRYPTO_KMODS += sha1 567CRYPTO_KMODS += sha2 568CRYPTO_KMODS += swrand 569 570# 571# IP Policy Modules (/kernel/ipp) 572# 573IPP_KMODS += dlcosmk 574IPP_KMODS += flowacct 575IPP_KMODS += ipgpc 576IPP_KMODS += dscpmk 577IPP_KMODS += tokenmt 578IPP_KMODS += tswtclmt 579 580# 581# generic-unix module (/kernel/genunix): 582# 583GENUNIX_KMODS += genunix 584 585# 586# SVVS Testing Modules (/kernel/strmod): 587# 588# These are streams and driver modules which are not to be 589# delivered with a released system. However, during development 590# it is convenient to build and install the SVVS kernel modules. 591# 592SVVS_KMODS += lmodb lmode lmodr lmodt lo tidg tivc tmux 593 594SVVS += svvs 595 596# 597# Modules eXcluded from the product: 598# 599$(CLOSED_BUILD)CLOSED_XMODS = \ 600 adpu320 \ 601 daplt \ 602 lsimega \ 603 nge \ 604 sdpib \ 605 spwr \ 606 tavor 607 608 609# 610# 'Dacf' Modules (/kernel/dacf): 611# 612DACF_KMODS += usb_ac_dacf 613 614# 615# Performance Counter BackEnd modules (/usr/kernel/pcbe) 616# 617PCBE_KMODS += p123_pcbe p4_pcbe opteron_pcbe 618 619# 620# MAC-Type Plugin Modules (/kernel/mac) 621# 622MAC_KMODS += mac_ether 623MAC_KMODS += mac_wifi 624 625# 626# 'Devname' Modules (kernel/devname) 627# 628DEVNAME_KMODS += sdev_nsconfig_mod 629