From 916eb79ee6e2fd3e1ab08275e76ec4e126cab685 Mon Sep 17 00:00:00 2001 From: Apple Date: Thu, 6 Dec 2007 02:10:45 +0000 Subject: [PATCH] system_cmds-433.tar.gz --- Makefile | 58 +- Makefile.include | 5 + Makefile.preamble | 6 - PB.project | 74 - README.rtf | 2 +- ac.tproj/Makefile | 51 +- ac.tproj/Makefile.postamble | 113 -- ac.tproj/Makefile.preamble | 113 -- ac.tproj/PB.project | 39 - accton.tproj/Makefile | 48 +- accton.tproj/Makefile.postamble | 114 -- accton.tproj/Makefile.preamble | 113 -- accton.tproj/PB.project | 41 - arch.tproj/Makefile | 60 +- arch.tproj/Makefile.postamble | 9 - arch.tproj/PB.project | 35 - at.tproj/LEGAL | 29 + at.tproj/Makefile | 68 +- at.tproj/Makefile.postamble | 15 - at.tproj/Makefile.preamble | 2 - at.tproj/PB.project | 36 - at.tproj/{at.man => at.1} | 0 atrun.tproj/Makefile | 54 +- atrun.tproj/Makefile.dist | 11 - atrun.tproj/Makefile.postamble | 5 - atrun.tproj/Makefile.preamble | 2 - atrun.tproj/PB.project | 39 - atrun.tproj/atrun.man | 69 + atrun.tproj/gloadavg.c | 72 + atrun.tproj/gloadavg.h | 29 + audit.tproj/Makefile | 52 +- audit.tproj/Makefile.postamble | 86 - audit.tproj/Makefile.preamble | 19 - audit.tproj/PB.project | 32 - auditd.tproj/Makefile | 57 +- auditd.tproj/Makefile.postamble | 121 -- auditd.tproj/Makefile.preamble | 18 - auditd.tproj/PB.project | 38 - bootlog.tproj/Makefile | 50 +- bootlog.tproj/Makefile.postamble | 5 - bootlog.tproj/Makefile.preamble | 1 - bootlog.tproj/PB.project | 24 - chkpasswd.tproj/Makefile | 52 +- chkpasswd.tproj/Makefile.postamble | 10 - chkpasswd.tproj/Makefile.preamble | 2 - chkpasswd.tproj/PB.project | 29 - chkpasswd.tproj/ds_passwd.c | 2 +- chkpasswd.tproj/netinfo_passwd.c | 354 ++++ chpass.tproj/IMPORT_NOTES | 1 + chpass.tproj/Makefile | 64 +- chpass.tproj/Makefile.postamble | 18 - chpass.tproj/Makefile.preamble | 6 - chpass.tproj/PB.project | 30 - dirhelper.tproj/Makefile | 70 +- dirhelper.tproj/dirhelper.c | 3 +- dmesg.tproj/Makefile | 51 +- dmesg.tproj/Makefile.dist | 9 - dmesg.tproj/Makefile.postamble | 3 - dmesg.tproj/Makefile.preamble | 4 - dmesg.tproj/PB.project | 31 - dp_notify_lib/Makefile | 66 +- dp_notify_lib/Makefile.postamble | 133 -- dp_notify_lib/Makefile.preamble | 145 -- dp_notify_lib/PB.project | 36 - dp_notify_lib/h.template | 11 - dp_notify_lib/m.template | 18 - dpkg/control | 4 + dynamic_pager.tproj/Makefile | 73 +- dynamic_pager.tproj/Makefile.postamble | 144 -- dynamic_pager.tproj/Makefile.preamble | 131 -- dynamic_pager.tproj/PB.project | 35 - fs_usage.tproj/Makefile | 52 +- fs_usage.tproj/Makefile.postamble | 107 - fs_usage.tproj/Makefile.preamble | 140 -- fs_usage.tproj/PB.project | 26 - getconf.tproj/Makefile | 62 +- getconf.tproj/Makefile.postamble | 6 - getconf.tproj/Makefile.preamble | 8 - getconf.tproj/PB.project | 24 - getty.tproj/Makefile | 54 +- getty.tproj/Makefile.postamble | 125 -- getty.tproj/Makefile.preamble | 119 -- getty.tproj/PB.project | 40 - hostinfo.tproj/Makefile | 49 +- hostinfo.tproj/Makefile.postamble | 129 -- hostinfo.tproj/Makefile.preamble | 144 -- hostinfo.tproj/PB.project | 27 - iostat.tproj/DERIVED_FILES | 1 + iostat.tproj/Makefile | 51 +- iostat.tproj/Makefile.postamble | 6 - iostat.tproj/Makefile.preamble | 116 -- iostat.tproj/PB.project | 43 - iostat.tproj/names.c | 268 +++ kgmon.tproj/Makefile | 48 + kgmon.tproj/kgmon.8 | 128 ++ kgmon.tproj/kgmon.c | 591 ++++++ kmodload.tproj/Makefile | 51 + kmodload.tproj/c++rem3.c | 2209 +++++++++++++++++++++ kmodload.tproj/c++rem3.h | 45 + kmodload.tproj/kld_patch.c | 2478 ++++++++++++++++++++++++ kmodload.tproj/kld_patch.h | 56 + kmodload.tproj/kmodload.8 | 103 + kmodload.tproj/kmodload.c | 756 ++++++++ kmodload.tproj/kmodsyms.8 | 119 ++ kmodload.tproj/vers_rsrc.c | 425 ++++ kmodload.tproj/vers_rsrc.h | 40 + kmodstat.tproj/Makefile | 48 + kmodstat.tproj/kmodstat.8 | 71 + kmodstat.tproj/kmodstat.c | 206 ++ kmodunload.tproj/Makefile | 48 + kmodunload.tproj/kmodunload.8 | 77 + kmodunload.tproj/kmodunload.c | 212 ++ kvm_mkdb.tproj/Makefile | 44 + kvm_mkdb.tproj/extern.h | 61 + kvm_mkdb.tproj/kvm_mkdb.8 | 70 + kvm_mkdb.tproj/kvm_mkdb.c | 144 ++ kvm_mkdb.tproj/nlist.c | 215 ++ kvm_mkdb.tproj/testdb.c | 136 ++ latency.tproj/Makefile | 53 +- latency.tproj/Makefile.postamble | 105 - latency.tproj/Makefile.preamble | 140 -- latency.tproj/PB.project | 31 - login.tproj/Makefile | 52 +- login.tproj/Makefile.postamble | 6 - login.tproj/Makefile.preamble | 7 - login.tproj/PB.project | 25 - makekey.tproj/Makefile | 49 +- makekey.tproj/Makefile.postamble | 113 -- makekey.tproj/Makefile.preamble | 119 -- makekey.tproj/PB.project | 39 - mkfile.tproj/Makefile | 49 +- mkfile.tproj/Makefile.postamble | 3 - mkfile.tproj/Makefile.preamble | 3 - mkfile.tproj/PB.project | 36 - newgrp.tproj/Makefile | 49 +- newgrp.tproj/Makefile.postamble | 6 - newgrp.tproj/Makefile.preamble | 2 - newgrp.tproj/PB.project | 27 - nologin.tproj/Makefile | 44 +- nologin.tproj/Makefile.dist | 14 - nologin.tproj/Makefile.postamble | 136 -- nologin.tproj/Makefile.preamble | 132 -- nologin.tproj/PB.project | 45 - nvram.tproj/Makefile | 50 +- nvram.tproj/Makefile.postamble | 136 -- nvram.tproj/Makefile.preamble | 130 -- nvram.tproj/PB.project | 30 - pagesize.tproj/Makefile | 44 +- pagesize.tproj/Makefile.dist | 17 - pagesize.tproj/Makefile.postamble | 131 -- pagesize.tproj/Makefile.preamble | 132 -- pagesize.tproj/PB.project | 34 - passwd.tproj/Makefile | 61 +- passwd.tproj/Makefile.postamble | 12 - passwd.tproj/Makefile.preamble | 3 - passwd.tproj/PB.project | 28 - passwd.tproj/passwd.c | 6 +- pwd_mkdb.tproj/Makefile | 49 +- pwd_mkdb.tproj/Makefile.postamble | 113 -- pwd_mkdb.tproj/Makefile.preamble | 115 -- pwd_mkdb.tproj/PB.project | 41 - reboot.tproj/Makefile | 57 +- reboot.tproj/Makefile.dist | 18 - reboot.tproj/Makefile.postamble | 5 - reboot.tproj/Makefile.preamble | 3 - reboot.tproj/PB.project | 43 - reboot.tproj/reboot.c | 15 +- sa.tproj/Makefile | 52 +- sa.tproj/Makefile.postamble | 104 - sa.tproj/Makefile.preamble | 140 -- sa.tproj/PB.project | 26 - sadc.tproj/Makefile | 58 +- sadc.tproj/Makefile.postamble | 131 -- sadc.tproj/Makefile.preamble | 143 -- sadc.tproj/PB.project | 38 - sar.tproj/Makefile | 51 +- sar.tproj/Makefile.postamble | 110 -- sar.tproj/Makefile.preamble | 140 -- sar.tproj/PB.project | 27 - sc_usage.tproj/Makefile | 55 +- sc_usage.tproj/Makefile.postamble | 111 -- sc_usage.tproj/Makefile.preamble | 140 -- sc_usage.tproj/PB.project | 26 - shutdown.tproj/Makefile | 55 +- shutdown.tproj/Makefile.dist | 9 - shutdown.tproj/Makefile.postamble | 6 - shutdown.tproj/Makefile.preamble | 3 - shutdown.tproj/PB.project | 32 - sync.tproj/Makefile | 51 +- sync.tproj/Makefile.dist | 6 - sync.tproj/Makefile.postamble | 3 - sync.tproj/Makefile.preamble | 2 - sync.tproj/PB.project | 34 - sysctl.tproj/Makefile | 49 +- sysctl.tproj/Makefile.postamble | 115 -- sysctl.tproj/Makefile.preamble | 114 -- sysctl.tproj/PB.project | 41 - sysctl.tproj/pathconf.c | 252 +++ update.tproj/Makefile | 55 +- update.tproj/Makefile.postamble | 125 -- update.tproj/Makefile.preamble | 114 -- update.tproj/PB.project | 42 - vifs.tproj/Makefile | 43 +- vifs.tproj/Makefile.postamble | 3 - vifs.tproj/PB.project | 41 - vipw.tproj/Makefile | 52 +- vipw.tproj/Makefile.postamble | 113 -- vipw.tproj/Makefile.preamble | 113 -- vipw.tproj/PB.project | 41 - vm_stat.tproj/Makefile | 52 +- vm_stat.tproj/Makefile.postamble | 103 - vm_stat.tproj/Makefile.preamble | 137 -- vm_stat.tproj/PB.project | 25 - vm_stat.tproj/h.template | 11 - vm_stat.tproj/m.template | 18 - zdump.tproj/Makefile | 49 +- zdump.tproj/Makefile.postamble | 129 -- zdump.tproj/Makefile.preamble | 131 -- zdump.tproj/PB.project | 27 - zic.tproj/Arts.htm | 178 ++ zic.tproj/Makefile | 106 +- zic.tproj/Makefile.postamble | 246 --- zic.tproj/Makefile.preamble | 130 -- zic.tproj/Makefile.zoneinfo.dist | 86 + zic.tproj/PB.project | 27 - zic.tproj/README | 80 + zic.tproj/Theory | 552 ++++++ zic.tproj/ZIC_HACK | 4 + zic.tproj/tz-art.htm | 278 +++ zic.tproj/tz-link.htm | 443 +++++ zprint.tproj/Makefile | 49 +- zprint.tproj/Makefile.postamble | 104 - zprint.tproj/Makefile.preamble | 139 -- zprint.tproj/PB.project | 25 - 234 files changed, 11501 insertions(+), 10380 deletions(-) create mode 100644 Makefile.include delete mode 100644 Makefile.preamble delete mode 100644 PB.project delete mode 100644 ac.tproj/Makefile.postamble delete mode 100644 ac.tproj/Makefile.preamble delete mode 100644 ac.tproj/PB.project delete mode 100644 accton.tproj/Makefile.postamble delete mode 100644 accton.tproj/Makefile.preamble delete mode 100644 accton.tproj/PB.project delete mode 100644 arch.tproj/Makefile.postamble delete mode 100644 arch.tproj/PB.project create mode 100644 at.tproj/LEGAL delete mode 100644 at.tproj/Makefile.postamble delete mode 100644 at.tproj/Makefile.preamble delete mode 100644 at.tproj/PB.project rename at.tproj/{at.man => at.1} (100%) delete mode 100644 atrun.tproj/Makefile.dist delete mode 100644 atrun.tproj/Makefile.postamble delete mode 100644 atrun.tproj/Makefile.preamble delete mode 100644 atrun.tproj/PB.project create mode 100644 atrun.tproj/atrun.man create mode 100644 atrun.tproj/gloadavg.c create mode 100644 atrun.tproj/gloadavg.h delete mode 100644 audit.tproj/Makefile.postamble delete mode 100644 audit.tproj/Makefile.preamble delete mode 100644 audit.tproj/PB.project delete mode 100644 auditd.tproj/Makefile.postamble delete mode 100644 auditd.tproj/Makefile.preamble delete mode 100644 auditd.tproj/PB.project delete mode 100644 bootlog.tproj/Makefile.postamble delete mode 100644 bootlog.tproj/Makefile.preamble delete mode 100644 bootlog.tproj/PB.project delete mode 100644 chkpasswd.tproj/Makefile.postamble delete mode 100644 chkpasswd.tproj/Makefile.preamble delete mode 100644 chkpasswd.tproj/PB.project create mode 100644 chkpasswd.tproj/netinfo_passwd.c create mode 100644 chpass.tproj/IMPORT_NOTES delete mode 100644 chpass.tproj/Makefile.postamble delete mode 100644 chpass.tproj/Makefile.preamble delete mode 100644 chpass.tproj/PB.project delete mode 100644 dmesg.tproj/Makefile.dist delete mode 100644 dmesg.tproj/Makefile.postamble delete mode 100644 dmesg.tproj/Makefile.preamble delete mode 100644 dmesg.tproj/PB.project delete mode 100644 dp_notify_lib/Makefile.postamble delete mode 100644 dp_notify_lib/Makefile.preamble delete mode 100644 dp_notify_lib/PB.project delete mode 100644 dp_notify_lib/h.template delete mode 100644 dp_notify_lib/m.template create mode 100644 dpkg/control delete mode 100644 dynamic_pager.tproj/Makefile.postamble delete mode 100644 dynamic_pager.tproj/Makefile.preamble delete mode 100644 dynamic_pager.tproj/PB.project delete mode 100644 fs_usage.tproj/Makefile.postamble delete mode 100644 fs_usage.tproj/Makefile.preamble delete mode 100644 fs_usage.tproj/PB.project delete mode 100644 getconf.tproj/Makefile.postamble delete mode 100644 getconf.tproj/Makefile.preamble delete mode 100644 getconf.tproj/PB.project delete mode 100644 getty.tproj/Makefile.postamble delete mode 100644 getty.tproj/Makefile.preamble delete mode 100644 getty.tproj/PB.project delete mode 100644 hostinfo.tproj/Makefile.postamble delete mode 100644 hostinfo.tproj/Makefile.preamble delete mode 100644 hostinfo.tproj/PB.project create mode 100644 iostat.tproj/DERIVED_FILES delete mode 100644 iostat.tproj/Makefile.postamble delete mode 100644 iostat.tproj/Makefile.preamble delete mode 100644 iostat.tproj/PB.project create mode 100644 iostat.tproj/names.c create mode 100644 kgmon.tproj/Makefile create mode 100644 kgmon.tproj/kgmon.8 create mode 100644 kgmon.tproj/kgmon.c create mode 100644 kmodload.tproj/Makefile create mode 100644 kmodload.tproj/c++rem3.c create mode 100644 kmodload.tproj/c++rem3.h create mode 100644 kmodload.tproj/kld_patch.c create mode 100644 kmodload.tproj/kld_patch.h create mode 100644 kmodload.tproj/kmodload.8 create mode 100644 kmodload.tproj/kmodload.c create mode 100644 kmodload.tproj/kmodsyms.8 create mode 100644 kmodload.tproj/vers_rsrc.c create mode 100644 kmodload.tproj/vers_rsrc.h create mode 100644 kmodstat.tproj/Makefile create mode 100644 kmodstat.tproj/kmodstat.8 create mode 100644 kmodstat.tproj/kmodstat.c create mode 100644 kmodunload.tproj/Makefile create mode 100644 kmodunload.tproj/kmodunload.8 create mode 100644 kmodunload.tproj/kmodunload.c create mode 100644 kvm_mkdb.tproj/Makefile create mode 100644 kvm_mkdb.tproj/extern.h create mode 100644 kvm_mkdb.tproj/kvm_mkdb.8 create mode 100644 kvm_mkdb.tproj/kvm_mkdb.c create mode 100644 kvm_mkdb.tproj/nlist.c create mode 100644 kvm_mkdb.tproj/testdb.c delete mode 100644 latency.tproj/Makefile.postamble delete mode 100644 latency.tproj/Makefile.preamble delete mode 100644 latency.tproj/PB.project delete mode 100644 login.tproj/Makefile.postamble delete mode 100644 login.tproj/Makefile.preamble delete mode 100644 login.tproj/PB.project delete mode 100644 makekey.tproj/Makefile.postamble delete mode 100644 makekey.tproj/Makefile.preamble delete mode 100644 makekey.tproj/PB.project delete mode 100644 mkfile.tproj/Makefile.postamble delete mode 100644 mkfile.tproj/Makefile.preamble delete mode 100644 mkfile.tproj/PB.project delete mode 100644 newgrp.tproj/Makefile.postamble delete mode 100644 newgrp.tproj/Makefile.preamble delete mode 100644 newgrp.tproj/PB.project delete mode 100644 nologin.tproj/Makefile.dist delete mode 100644 nologin.tproj/Makefile.postamble delete mode 100644 nologin.tproj/Makefile.preamble delete mode 100644 nologin.tproj/PB.project delete mode 100644 nvram.tproj/Makefile.postamble delete mode 100644 nvram.tproj/Makefile.preamble delete mode 100644 nvram.tproj/PB.project delete mode 100644 pagesize.tproj/Makefile.dist delete mode 100644 pagesize.tproj/Makefile.postamble delete mode 100644 pagesize.tproj/Makefile.preamble delete mode 100644 pagesize.tproj/PB.project delete mode 100644 passwd.tproj/Makefile.postamble delete mode 100644 passwd.tproj/Makefile.preamble delete mode 100644 passwd.tproj/PB.project delete mode 100644 pwd_mkdb.tproj/Makefile.postamble delete mode 100644 pwd_mkdb.tproj/Makefile.preamble delete mode 100644 pwd_mkdb.tproj/PB.project delete mode 100644 reboot.tproj/Makefile.dist delete mode 100644 reboot.tproj/Makefile.postamble delete mode 100644 reboot.tproj/Makefile.preamble delete mode 100644 reboot.tproj/PB.project delete mode 100644 sa.tproj/Makefile.postamble delete mode 100644 sa.tproj/Makefile.preamble delete mode 100644 sa.tproj/PB.project delete mode 100644 sadc.tproj/Makefile.postamble delete mode 100644 sadc.tproj/Makefile.preamble delete mode 100644 sadc.tproj/PB.project delete mode 100644 sar.tproj/Makefile.postamble delete mode 100644 sar.tproj/Makefile.preamble delete mode 100644 sar.tproj/PB.project delete mode 100644 sc_usage.tproj/Makefile.postamble delete mode 100644 sc_usage.tproj/Makefile.preamble delete mode 100644 sc_usage.tproj/PB.project delete mode 100644 shutdown.tproj/Makefile.dist delete mode 100644 shutdown.tproj/Makefile.postamble delete mode 100644 shutdown.tproj/Makefile.preamble delete mode 100644 shutdown.tproj/PB.project delete mode 100644 sync.tproj/Makefile.dist delete mode 100644 sync.tproj/Makefile.postamble delete mode 100644 sync.tproj/Makefile.preamble delete mode 100644 sync.tproj/PB.project delete mode 100644 sysctl.tproj/Makefile.postamble delete mode 100644 sysctl.tproj/Makefile.preamble delete mode 100644 sysctl.tproj/PB.project create mode 100644 sysctl.tproj/pathconf.c delete mode 100644 update.tproj/Makefile.postamble delete mode 100644 update.tproj/Makefile.preamble delete mode 100644 update.tproj/PB.project delete mode 100644 vifs.tproj/Makefile.postamble delete mode 100644 vifs.tproj/PB.project delete mode 100644 vipw.tproj/Makefile.postamble delete mode 100644 vipw.tproj/Makefile.preamble delete mode 100644 vipw.tproj/PB.project delete mode 100644 vm_stat.tproj/Makefile.postamble delete mode 100644 vm_stat.tproj/Makefile.preamble delete mode 100644 vm_stat.tproj/PB.project delete mode 100644 vm_stat.tproj/h.template delete mode 100644 vm_stat.tproj/m.template delete mode 100644 zdump.tproj/Makefile.postamble delete mode 100644 zdump.tproj/Makefile.preamble delete mode 100644 zdump.tproj/PB.project create mode 100644 zic.tproj/Arts.htm delete mode 100644 zic.tproj/Makefile.postamble delete mode 100644 zic.tproj/Makefile.preamble create mode 100644 zic.tproj/Makefile.zoneinfo.dist delete mode 100644 zic.tproj/PB.project create mode 100644 zic.tproj/README create mode 100644 zic.tproj/Theory create mode 100644 zic.tproj/ZIC_HACK create mode 100644 zic.tproj/tz-art.htm create mode 100644 zic.tproj/tz-link.htm delete mode 100644 zprint.tproj/Makefile.postamble delete mode 100644 zprint.tproj/Makefile.preamble delete mode 100644 zprint.tproj/PB.project diff --git a/Makefile b/Makefile index bde6f0c..e370300 100644 --- a/Makefile +++ b/Makefile @@ -1,67 +1,25 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = system_cmds - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Aggregate +Project = system_cmds Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) -TOOLS = dynamic_pager.tproj ac.tproj accton.tproj arch.tproj\ +SubProjects = dynamic_pager.tproj ac.tproj accton.tproj arch.tproj\ bootlog.tproj\ - dirhelper.tproj dmesg.tproj\ + dmesg.tproj\ getconf.tproj getty.tproj hostinfo.tproj iostat.tproj\ login.tproj makekey.tproj\ mkfile.tproj newgrp.tproj nvram.tproj passwd.tproj pwd_mkdb.tproj\ reboot.tproj sync.tproj sysctl.tproj\ update.tproj vipw.tproj vifs.tproj zic.tproj zdump.tproj vm_stat.tproj\ zprint.tproj latency.tproj sc_usage.tproj fs_usage.tproj\ - sadc.tproj sar.tproj sa.tproj + sadc.tproj sar.tproj sa.tproj \ + dp_notify_lib nologin.tproj pagesize.tproj ifeq "$(Embedded)" "NO" -TOOLS += at.tproj atrun.tproj\ +SubProjects += at.tproj atrun.tproj\ auditd.tproj audit.tproj\ chkpasswd.tproj chpass.tproj\ + dirhelper.tproj\ shutdown.tproj endif -LIBRARIES = dp_notify_lib - -LEGACIES = nologin.tproj pagesize.tproj - -OTHERSRCS = Makefile.preamble Makefile README.rtf APPLE_LICENSE - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = aggregate.make -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/Makefile.include b/Makefile.include new file mode 100644 index 0000000..4d583ef --- /dev/null +++ b/Makefile.include @@ -0,0 +1,5 @@ +## +## Temporary flags for static Teflon builds +## + +CHFLAGS = true # until we really have chflags on our system diff --git a/Makefile.preamble b/Makefile.preamble deleted file mode 100644 index bb77a84..0000000 --- a/Makefile.preamble +++ /dev/null @@ -1,6 +0,0 @@ -CLEAN_ALL_SUBPROJECTS = YES -SUBPROJECTS = -OTHER_CFLAGS = -mdynamic-no-pic -ifeq "$(shell tconf --test TARGET_OS_EMBEDDED)" "YES" -OTHER_LDFLAGS = -dead_strip -endif diff --git a/PB.project b/PB.project deleted file mode 100644 index e6e80d6..0000000 --- a/PB.project +++ /dev/null @@ -1,74 +0,0 @@ -{ - "English_RESOURCES" = {}; - FILESTABLE = { - CLASSES = ("zprint.c"); - "C_FILES" = (); - FRAMEWORKS = (); - HEADERSEARCH = (); - "H_FILES" = (); - "M_FILES" = (); - "OTHER_LINKED" = (); - "OTHER_SOURCES" = ("Makefile.preamble", Makefile, "README.rtf", "APPLE_LICENSE"); - "PRECOMPILED_HEADERS" = (); - "PROJECT_HEADERS" = (); - "PUBLIC_HEADERS" = (); - SUBPROJECTS = ( - "dynamic_pager.tproj", - "dp_notify_lib", - "ac.tproj", - "accton.tproj", - "arch.tproj", - "at.tproj", - "atrun.tproj", - "audit.tproj", - "auditd.tproj", - "chkpasswd.tproj", - "chpass.tproj", - "dirhelper.tproj", - "dmesg.tproj", - "getconf.tproj", - "getty.tproj", - "hostinfo.tproj", - "iostat.tproj", - "kgmon.tproj", - "login.tproj", - "makekey.tproj", - "mkfile.tproj", - "newgrp.tproj", - "nologin.tproj", - "nvram.tproj", - "pagesize.tproj", - "passwd.tproj", - "pwd_mkdb.tproj", - "reboot.tproj", - "shutdown.tproj", - "sync.tproj", - "sysctl.tproj", - "update.tproj", - "vipw.tproj", - "zic.tproj", - "zdump.tproj", - "vm_stat.tproj", - "zprint.tproj", - "latency.tproj", - "sc_usage.tproj", - "fs_usage.tproj", - "sadc.tproj", - "sar.tproj" - ); - }; - LANGUAGE = English; - "LOCALIZABLE_FILES" = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - "NEXTSTEP_BUILDTOOL" = "/bin/gnumake"; - "NEXTSTEP_JAVA_COMPILER" = "/usr/bin/javac"; - "NEXTSTEP_OBJCPLUS_COMPILER" = "/usr/bin/cc"; - "PDO_UNIX_JAVA_COMPILER" = "$(NEXTDEV_BIN)/javac"; - "PDO_UNIX_OBJCPLUS_COMPILER" = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = "system_cmds"; - PROJECTTYPE = Aggregate; - PROJECTVERSION = "2.8"; - TARGETS = (); - "WINDOWS_JAVA_COMPILER" = "$(JDKBINDIR)/javac.exe"; - "WINDOWS_OBJCPLUS_COMPILER" = "$(DEVDIR)/gcc"; -} diff --git a/README.rtf b/README.rtf index 9e6cc5b..ee40118 100644 --- a/README.rtf +++ b/README.rtf @@ -29,4 +29,4 @@ savecore\ vmstat\ \f2\i not found\ -} \ No newline at end of file +} diff --git a/ac.tproj/Makefile b/ac.tproj/Makefile index 31dfe34..9147142 100644 --- a/ac.tproj/Makefile +++ b/ac.tproj/Makefile @@ -1,50 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = ac - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = ac +Install_Dir = /usr/sbin CFILES = ac.c +MANPAGES = ac.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble ac.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/ac.tproj/Makefile.postamble b/ac.tproj/Makefile.postamble deleted file mode 100644 index a9b68c9..0000000 --- a/ac.tproj/Makefile.postamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app) -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target - - -# Change defaults assumed by the standard app makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if -# you would like changes to them to invalidate previous builds. The project -# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build. -#MAKEFILES = Makefile - -# Optimization flag passed to compiler: -#OPTIMIZATION_CFLAG = -O - -# Flags always passed to compiler: -#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall - -# Flags passed to compiler in normal 'app' compiles: -#NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG) - -# Flags passed to compiler in 'debug' compiles: -#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG - -# Flags passed to compiler in 'profile' compiles -#PROFILE_CFLAGS = $(COMMON_CFLAGS) -pg $(OPTIMIZATION_CFLAG) -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User to chown app to -#INSTALL_AS_GROUP = wheel # Group to chgrp app to -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for bundles, apps with bundles, and apps without bundles, -# respectively. -#RELOCATABLE_STRIP_OPTS = -x -u -#DYLD_APP_STRIP_OPTS = -A -n -#APP_STRIP_OPTS = -#TOOL_STRIP_OPTS = -#LIBRARY_STRIP_OPTS = -x -S # Note: -S strips debugging symbols -# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but -# developers doing their own dynamic loading should set this to -# $(DYLD_APP_STRIP_OPTS)). - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Typical -# user-defined rules are before_install and after_install (please don't -# redefine things like install or app, as they are owned by the top-level -# Makefile API), which are rules that get invoked before and after the install -# target runs. Such rules should be specified with the '::' syntax rather than -# a single colon. - -after_install: - mkdir -p "$(DSTROOT)/usr/share/man/man8" - install -c -m 644 ac.8 "$(DSTROOT)/usr/share/man/man8/ac.8" diff --git a/ac.tproj/Makefile.preamble b/ac.tproj/Makefile.preamble deleted file mode 100644 index e5a7929..0000000 --- a/ac.tproj/Makefile.preamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -#OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = - -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -AFTER_INSTALL = after_install diff --git a/ac.tproj/PB.project b/ac.tproj/PB.project deleted file mode 100644 index 7e31b83..0000000 --- a/ac.tproj/PB.project +++ /dev/null @@ -1,39 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (); - H_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (ac.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, ac.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/tmp/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = ac; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/accton.tproj/Makefile b/accton.tproj/Makefile index 6444923..36aed17 100644 --- a/accton.tproj/Makefile +++ b/accton.tproj/Makefile @@ -1,48 +1,8 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = accton - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = accton +Install_Dir = /usr/sbin CFILES = accton.c +MANPAGES = accton.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble accton.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies diff --git a/accton.tproj/Makefile.postamble b/accton.tproj/Makefile.postamble deleted file mode 100644 index 74be9f9..0000000 --- a/accton.tproj/Makefile.postamble +++ /dev/null @@ -1,114 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app) -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target - - -# Change defaults assumed by the standard app makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if -# you would like changes to them to invalidate previous builds. The project -# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build. -#MAKEFILES = Makefile - -# Optimization flag passed to compiler: -#OPTIMIZATION_CFLAG = -O - -# Flags always passed to compiler: -#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall - -# Flags passed to compiler in normal 'app' compiles: -#NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG) - -# Flags passed to compiler in 'debug' compiles: -#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG - -# Flags passed to compiler in 'profile' compiles -#PROFILE_CFLAGS = $(COMMON_CFLAGS) -pg $(OPTIMIZATION_CFLAG) -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User to chown app to -#INSTALL_AS_GROUP = wheel # Group to chgrp app to -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for bundles, apps with bundles, and apps without bundles, -# respectively. -#RELOCATABLE_STRIP_OPTS = -x -u -#DYLD_APP_STRIP_OPTS = -A -n -#APP_STRIP_OPTS = -#TOOL_STRIP_OPTS = -#LIBRARY_STRIP_OPTS = -x -S # Note: -S strips debugging symbols -# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but -# developers doing their own dynamic loading should set this to -# $(DYLD_APP_STRIP_OPTS)). - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Typical -# user-defined rules are before_install and after_install (please don't -# redefine things like install or app, as they are owned by the top-level -# Makefile API), which are rules that get invoked before and after the install -# target runs. Such rules should be specified with the '::' syntax rather than -# a single colon. - -after_install: - install -d $(DSTROOT)/usr/share/man/man8 - install -m 0444 accton.8 $(DSTROOT)/usr/share/man/man8/accton.8 - diff --git a/accton.tproj/Makefile.preamble b/accton.tproj/Makefile.preamble deleted file mode 100644 index 1409816..0000000 --- a/accton.tproj/Makefile.preamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -#OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = -# Additional libs to link apps against ('profile' target) -OTHER_PROF_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/accton.tproj/PB.project b/accton.tproj/PB.project deleted file mode 100644 index 162e4d1..0000000 --- a/accton.tproj/PB.project +++ /dev/null @@ -1,41 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (); - H_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (accton.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = accton; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/arch.tproj/Makefile b/arch.tproj/Makefile index a055465..7f48b66 100644 --- a/arch.tproj/Makefile +++ b/arch.tproj/Makefile @@ -1,54 +1,18 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = arch - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = arch +Install_Dir = /usr/bin MFILES = arch.m -FRAMEWORKS = -framework Foundation - -OTHERSRCS = Makefile PB.project Makefile.postamble arch.1 machine.1 arch_helper.pl - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -NEXTSTEP_PB_CFLAGS = -DARCH_PROG=\"arch\" -DMACHINE_PROG=\"machine\" -WINDOWS_PB_CFLAGS = -DARCH_PROG=\"arch\" -DMACHINE_PROG=\"machine\" -PDO_UNIX_PB_CFLAGS = -DARCH_PROG=\"arch\" -DMACHINE_PROG=\"machine\" - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make +Extra_Frameworks = -framework Foundation --include Makefile.preamble +MANPAGES = arch.1 machine.1 -include $(MAKEFILEDIR)/$(MAKEFILE) +Extra_CC_Flags = -DARCH_PROG=\"arch\" -DMACHINE_PROG=\"machine\" --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +HELPERDIR = /AppleInternal/Developer/Tools +after_install: + @-$(RM) -f $(DSTROOT)$(INSTALLDIR)/machine + $(LN) -h $(DSTROOT)$(Install_Dir)/arch $(DSTROOT)$(Install_Dir)/machine + $(INSTALL_DIRECTORY) -d $(DSTROOT)$(HELPERDIR) + $(INSTALL_SCRIPT) arch_helper.pl $(DSTROOT)$(HELPERDIR) diff --git a/arch.tproj/Makefile.postamble b/arch.tproj/Makefile.postamble deleted file mode 100644 index 70b993c..0000000 --- a/arch.tproj/Makefile.postamble +++ /dev/null @@ -1,9 +0,0 @@ -HELPERDIR = /AppleInternal/Developer/Tools -after_install:: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 arch.1 $(DSTROOT)/usr/share/man/man1 - install -c -m 444 machine.1 $(DSTROOT)/usr/share/man/man1 - @-$(RM) -f $(DSTROOT)$(INSTALLDIR)/machine - ln $(DSTROOT)$(INSTALLDIR)/arch $(DSTROOT)$(INSTALLDIR)/machine - install -d $(DSTROOT)$(HELPERDIR) - install -c -m 755 arch_helper.pl $(DSTROOT)$(HELPERDIR) diff --git a/arch.tproj/PB.project b/arch.tproj/PB.project deleted file mode 100644 index 86754f4..0000000 --- a/arch.tproj/PB.project +++ /dev/null @@ -1,35 +0,0 @@ -{ - FILESTABLE = { - C_FILES = (); - H_FILES = (); - M_FILES = (); - OTHER_LINKED = (arch.c); - OTHER_SOURCES = (Makefile, PB.project, Makefile.postamble); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/tmp/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_COMPILEROPTIONS = "-DARCH_PROG=\\\"arch\\\" -DMACHINE_PROG=\\\"machine\\\""; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = "-DARCH_PROG=\\\"arch\\\" -DMACHINE_PROG=\\\"machine\\\""; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = arch; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = "-DARCH_PROG=\\\"arch\\\" -DMACHINE_PROG=\\\"machine\\\""; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/at.tproj/LEGAL b/at.tproj/LEGAL new file mode 100644 index 0000000..92b1b49 --- /dev/null +++ b/at.tproj/LEGAL @@ -0,0 +1,29 @@ +-----BEGIN PGP SIGNED MESSAGE----- + +Sorry for the long wait, but there still were a few things to +be ironed out in at, which I've finally done :-) + +The FreeBSD team does have my permission to use at, version 2.9, +under the BSD license. + +You'll find it on sunsite.unc.edu's Incoming, hopefully; the +md5 checksum is + +3ba2ca3c0e87e1a04feae2c6c1376b0d at-2.9.tgz + +Best regards + Thomas +- -- +Thomas Koenig, Thomas.Koenig@ciw.uni-karlsruhe.de, ig25@dkauni2.bitnet. +The joy of engineering is to find a straight line on a double +logarithmic diagram. + +-----BEGIN PGP SIGNATURE----- +Version: 2.6.2i + +iQCVAwUBMCjVrPBu+cbJcKCVAQFNiQP/dpWP57s/E8plVGUD3zfgOXDmKUvg8U7a +VwRzJrIMuSgnSJs0wkpvcomc3NLicipfX7hhWLh/xatPM2YbF7O5HZoNdvWvexD2 +1Y67zJ+0HFb1mPnSBOrS5RFiQAe3KqmGec6E14Rih/qNoFQZBVRFXZ4xxuwP+0Rs +e2U+TVTUz6A= +=TvyW +-----END PGP SIGNATURE----- diff --git a/at.tproj/Makefile b/at.tproj/Makefile index bde6f8c..f453f00 100644 --- a/at.tproj/Makefile +++ b/at.tproj/Makefile @@ -1,57 +1,29 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = at - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = at +Install_Dir = /usr/bin HFILES = at.h panic.h parsetime.h pathnames.h privs.h perm.h - CFILES = at.c panic.c parsetime.c perm.c - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble at.man - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - +MANPAGES = at.1 PROJECT_HEADERS = privs.h pathnames.h -NEXTSTEP_PB_CFLAGS += -D__FBSDID=__RCSID -DDAEMON_UID=1 -DDAEMON_GID=1 \ - -DDEFAULT_AT_QUEUE=\'a\' -DDEFAULT_BATCH_QUEUE=\'b\' \ +Extra_CC_Flags = -D__FBSDID=__RCSID -DDAEMON_UID=1 -DDAEMON_GID=1 \ + -DDEFAULT_AT_QUEUE=\"a\" -DDEFAULT_BATCH_QUEUE=\"b\" \ -DPERM_PATH=\"/usr/lib/cron/\" \ -I/System/Library/Frameworks/System.framework/PrivateHeaders -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(NAME)/Build - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make + +Install_Program_Mode = 04555 + +after_install: + $(LN) -f $(DSTROOT)/$(Install_Dir)/at $(DSTROOT)$(Install_Dir)/atq + $(LN) -f $(DSTROOT)/$(Install_Dir)/at $(DSTROOT)$(Install_Dir)/atrm + $(LN) -f $(DSTROOT)/$(Install_Dir)/at $(DSTROOT)$(Install_Dir)/batch + install -o daemon -d "$(DSTROOT)/private/var/at/spool" + touch "$(DSTROOT)/private/var/at/at.deny" + $(MKDIR) "$(DSTROOT)/usr/lib" + $(LN) -sf ../../var/at "$(DSTROOT)/usr/lib/cron" + $(LN) -sf at.1 "$(DSTROOT)/usr/share/man/man1/atrm.1" + $(LN) -sf at.1 "$(DSTROOT)/usr/share/man/man1/atq.1" + $(LN) -sf at.1 "$(DSTROOT)/usr/share/man/man1/batch.1" diff --git a/at.tproj/Makefile.postamble b/at.tproj/Makefile.postamble deleted file mode 100644 index e65f481..0000000 --- a/at.tproj/Makefile.postamble +++ /dev/null @@ -1,15 +0,0 @@ -INSTALL_PERMISSIONS = 4555 - -after_install:: - $(LN) -f $(INSTALLED_PRODUCTS) $(DSTROOT)$(INSTALLDIR)/atq - $(LN) -f $(INSTALLED_PRODUCTS) $(DSTROOT)$(INSTALLDIR)/atrm - $(LN) -f $(INSTALLED_PRODUCTS) $(DSTROOT)$(INSTALLDIR)/batch - install -o daemon -d "$(DSTROOT)/private/var/at/spool" - touch "$(DSTROOT)/private/var/at/at.deny" - mkdir -p "$(DSTROOT)/usr/lib" - ln -sf ../../var/at "$(DSTROOT)/usr/lib/cron" - mkdir -p "$(DSTROOT)/usr/share/man/man1" - install -c -m 644 at.man "$(DSTROOT)/usr/share/man/man1/at.1" - ln -f "$(DSTROOT)/usr/share/man/man1/at.1" "$(DSTROOT)/usr/share/man/man1/atrm.1" - ln -f "$(DSTROOT)/usr/share/man/man1/at.1" "$(DSTROOT)/usr/share/man/man1/atq.1" - ln -f "$(DSTROOT)/usr/share/man/man1/at.1" "$(DSTROOT)/usr/share/man/man1/batch.1" diff --git a/at.tproj/Makefile.preamble b/at.tproj/Makefile.preamble deleted file mode 100644 index d5059b1..0000000 --- a/at.tproj/Makefile.preamble +++ /dev/null @@ -1,2 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/at.tproj/PB.project b/at.tproj/PB.project deleted file mode 100644 index d880b55..0000000 --- a/at.tproj/PB.project +++ /dev/null @@ -1,36 +0,0 @@ -{ - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (at.h, panic.h, parsetime.h, pathnames.h, privs.h, perm.h); - OTHER_LINKED = (at.c, panic.c, parsetime.c, perm.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, Makefile.dist, at.1); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (privs.h, pathnames.h); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = at; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/at.tproj/at.man b/at.tproj/at.1 similarity index 100% rename from at.tproj/at.man rename to at.tproj/at.1 diff --git a/atrun.tproj/Makefile b/atrun.tproj/Makefile index 64dcece..e364249 100644 --- a/atrun.tproj/Makefile +++ b/atrun.tproj/Makefile @@ -1,53 +1,11 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = atrun - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = atrun +Install_Dir = /usr/libexec HFILES = atrun.h - CFILES = atrun.c +MANPAGES = atrun.8 +LAUNCHD_PLISTS = com.apple.atrun.plist -OTHERSRCS = Makefile.preamble Makefile Makefile.dist atrun.8 Makefile.postamble com.apple.atrun.plist - -NEXTSTEP_PB_CFLAGS += -DDAEMON_UID=1 -DDAEMON_GID=1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/libexec -WINDOWS_INSTALLDIR = /usr/libexec -PDO_UNIX_INSTALLDIR = /usr/libexec -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I../at.tproj - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +Extra_CC_Flags = -DDAEMON_UID=1 -DDAEMON_GID=1 -I../at.tproj --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/atrun.tproj/Makefile.dist b/atrun.tproj/Makefile.dist deleted file mode 100644 index 0980f04..0000000 --- a/atrun.tproj/Makefile.dist +++ /dev/null @@ -1,11 +0,0 @@ -# $Id: Makefile.dist,v 1.1 1999/05/02 04:21:19 wsanchez Exp $ - -PROG= atrun -BINDIR= /usr/libexec -MAN8= atrun.0 - -BINOWN= root - -CFLAGS+= -I${.CURDIR}/../../usr.bin/at - -.include diff --git a/atrun.tproj/Makefile.postamble b/atrun.tproj/Makefile.postamble deleted file mode 100644 index f3a4add..0000000 --- a/atrun.tproj/Makefile.postamble +++ /dev/null @@ -1,5 +0,0 @@ -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 atrun.8 $(DSTROOT)/usr/share/man/man8 - mkdir -p $(DSTROOT)/System/Library/LaunchDaemons - install -c -m 444 com.apple.atrun.plist $(DSTROOT)/System/Library/LaunchDaemons diff --git a/atrun.tproj/Makefile.preamble b/atrun.tproj/Makefile.preamble deleted file mode 100644 index d5059b1..0000000 --- a/atrun.tproj/Makefile.preamble +++ /dev/null @@ -1,2 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/atrun.tproj/PB.project b/atrun.tproj/PB.project deleted file mode 100644 index b323250..0000000 --- a/atrun.tproj/PB.project +++ /dev/null @@ -1,39 +0,0 @@ -{ - FILESTABLE = { - FRAMEWORKS = (); - HEADERSEARCH = (../at); - H_FILES = (atrun.h); - OTHER_LINKED = (atrun.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.dist, atrun.8, com.apple.atrun.plist); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/libexec; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/libexec; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = atrun; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/libexec; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/atrun.tproj/atrun.man b/atrun.tproj/atrun.man new file mode 100644 index 0000000..581f976 --- /dev/null +++ b/atrun.tproj/atrun.man @@ -0,0 +1,69 @@ +.\" $FreeBSD: src/libexec/atrun/atrun.man,v 1.12 2004/07/02 19:07:31 ru Exp $ +.Dd April 12, 1995 +.Dt ATRUN 8 +.Os +.Sh NAME +.Nm atrun +.Nd run jobs queued for later execution +.Sh SYNOPSIS +.Nm atrun +.Op Fl l Ar load_avg +.Op Fl d +.Sh DESCRIPTION +.Nm Atrun +runs jobs queued by +.Xr at 1 . +.Pp +Root's +.Xr crontab 5 +file +.Pa /etc/crontab +has to contain the line +.Bd -literal +*/5 * * * * root /usr/libexec/atrun +.Ed +.Pp +so that +.Nm +gets invoked every five minutes. +.Pp +At every invocation, +.Nm +will start all the jobs in the lowercase queues whose start +time has elapsed. +In addition, if the load average over the last minute was less than +the specified limit then a maximum of one batch job (denoted by the +uppercase queues) is started. +.Sh OPTIONS +.Bl -tag -width indent +.It Fl l Ar load_avg +Specify a limiting load factor, over which batch jobs should +not be run, instead of the compiled in default of 1.5. +.It Fl d +Debug; print error messages to standard error instead of using +.Xr syslog 3 . +.El +.Sh WARNINGS +For +.Nm +to work, you have to start up a +.Xr cron 8 +daemon. +.Sh FILES +.Bl -tag -width /var/at/spool -compact +.It Pa /var/at/spool +Directory containing output spool files +.It Pa /var/at/jobs +Directory containing job files +.El +.Sh SEE ALSO +.Xr at 1 , +.Xr crontab 1 , +.Xr syslog 3 , +.Xr crontab 5 , +.Xr cron 8 +.Sh BUGS +The functionality of +.Nm +should be merged into +.Xr cron 8 . diff --git a/atrun.tproj/gloadavg.c b/atrun.tproj/gloadavg.c new file mode 100644 index 0000000..c4ecce6 --- /dev/null +++ b/atrun.tproj/gloadavg.c @@ -0,0 +1,72 @@ +/* + * gloadavg.c - get load average for Linux + * Copyright (C) 1993 Thomas Koenig + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the author(s) may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef lint +static const char rcsid[] = + "$FreeBSD: src/libexec/atrun/gloadavg.c,v 1.5 1999/08/28 00:09:12 peter Exp $"; +#endif /* not lint */ + +#ifndef __FreeBSD__ +#define _POSIX_SOURCE 1 + +/* System Headers */ + +#include +#else +#include +#endif + +/* Local headers */ + +#include "gloadavg.h" + +/* Global functions */ + +void perr(const char *a); + +double +gloadavg(void) +/* return the current load average as a floating point number, or <0 for + * error + */ +{ + double result; +#ifndef __FreeBSD__ + FILE *fp; + + if((fp=fopen(PROC_DIR "loadavg","r")) == NULL) + result = -1.0; + else + { + if(fscanf(fp,"%lf",&result) != 1) + result = -1.0; + fclose(fp); + } +#else + if (getloadavg(&result, 1) != 1) + perr("error in getloadavg"); +#endif + return result; +} diff --git a/atrun.tproj/gloadavg.h b/atrun.tproj/gloadavg.h new file mode 100644 index 0000000..3ead6ca --- /dev/null +++ b/atrun.tproj/gloadavg.h @@ -0,0 +1,29 @@ +/* + * gloadavg.h - header for atrun(8) + * Copyright (C) 1993 Thomas Koenig + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the author(s) may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +double gloadavg(void); +#if 0 +static char atrun_h_rcsid[] = "$FreeBSD: src/libexec/atrun/gloadavg.h,v 1.4 1999/08/28 00:09:12 peter Exp $"; +#endif diff --git a/audit.tproj/Makefile b/audit.tproj/Makefile index 3ad050e..109ff57 100644 --- a/audit.tproj/Makefile +++ b/audit.tproj/Makefile @@ -1,50 +1,10 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = audit - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = audit +Install_Dir = /usr/sbin CFILES = audit.c +MANPAGES = audit.1 +USERDEFS = auditd_control.defs -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble\ - auditd_control.defs audit.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I../auditd.tproj - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +Extra_CC_Flags = -I../auditd.tproj --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/audit.tproj/Makefile.postamble b/audit.tproj/Makefile.postamble deleted file mode 100644 index f093dff..0000000 --- a/audit.tproj/Makefile.postamble +++ /dev/null @@ -1,86 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 2004, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. -MIGFLAGS = -MIG = $(NEXT_ROOT)/usr/bin/mig - -auditd_control_user.c auditd_control.h: auditd_control.defs - cp $(SRCROOT)/auditd.tproj/auditd_control.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user auditd_control_user.c -header auditd_control.h \ - -server /dev/null -sheader /dev/null auditd_control.defs - - install-man-page: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 audit.1 $(DSTROOT)/usr/share/man/man1/audit.1 diff --git a/audit.tproj/Makefile.preamble b/audit.tproj/Makefile.preamble deleted file mode 100644 index e196000..0000000 --- a/audit.tproj/Makefile.preamble +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 2004, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -OTHER_GENERATED_OFILES = $(VERS_OFILE) -BEFORE_BUILD = auditd_control.h auditd_control_user.c -OTHER_OFILES = auditd_control_user.o -AFTER_INSTALL += install-man-page - diff --git a/audit.tproj/PB.project b/audit.tproj/PB.project deleted file mode 100644 index e0c75af..0000000 --- a/audit.tproj/PB.project +++ /dev/null @@ -1,32 +0,0 @@ -{ - "DYNAMIC_CODE_GEN" = YES; - FILESTABLE = { - FRAMEWORKS = (); - HEADERSEARCH = ("../auditd.tproj"); - "OTHER_LINKED" = ("audit.c"); - "OTHER_SOURCES" = ( - "Makefile.preamble", - Makefile, - "Makefile.postamble", - "auditd_control.defs", - "audit.1" - ); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - "NEXTSTEP_BUILDTOOL" = "/usr/bin/gnumake"; - "NEXTSTEP_INSTALLDIR" = "/usr/sbin"; - "NEXTSTEP_JAVA_COMPILER" = "/usr/bin/javac"; - "NEXTSTEP_OBJCPLUS_COMPILER" = "/usr/bin/cc"; - "PDO_UNIX_BUILDTOOL" = "$NEXT_ROOT/Developer/bin/make"; - "PDO_UNIX_INSTALLDIR" = "/bin"; - "PDO_UNIX_JAVA_COMPILER" = "$(JDKBINDIR)/javac"; - "PDO_UNIX_OBJCPLUS_COMPILER" = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = audit; - PROJECTTYPE = Tool; - PROJECTVERSION = "2.8"; - "WINDOWS_BUILDTOOL" = "$NEXT_ROOT/Developer/Executables/make"; - "WINDOWS_INSTALLDIR" = "/Library/Executables"; - "WINDOWS_JAVA_COMPILER" = "$(JDKBINDIR)/javac.exe"; - "WINDOWS_OBJCPLUS_COMPILER" = "$(DEVDIR)/gcc"; -} diff --git a/auditd.tproj/Makefile b/auditd.tproj/Makefile index edb12d0..0ef56fb 100644 --- a/auditd.tproj/Makefile +++ b/auditd.tproj/Makefile @@ -1,52 +1,17 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = auditd - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = auditd +Install_Dir = /usr/sbin HFILES = auditd.h - CFILES = audit_warn.c auditd.c +MANPAGES = auditd.8 +SERVERDEFS = auditd_control.defs audit_triggers.defs -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble\ - audit_triggers.defs auditd_control.defs auditd.8 rc.audit - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -NEXTSTEP_PB_LDFLAGS = -lbsm - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) +Extra_CC_Flags = -I. +Extra_LD_Flags = -lbsm +Extra_MIG_Flags = -no-cpp-precomp -R -untyped -DNO_DIRECT_RPC --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +after_install: + $(INSTALL_DIRECTORY) $(DSTROOT)/private/etc/security + install -c -m 400 rc.audit $(DSTROOT)/private/etc/security diff --git a/auditd.tproj/Makefile.postamble b/auditd.tproj/Makefile.postamble deleted file mode 100644 index 3b19087..0000000 --- a/auditd.tproj/Makefile.postamble +++ /dev/null @@ -1,121 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -ETCDIR = $(DSTROOT)/private/etc -MIGFLAGS = -no-cpp-precomp -R -untyped -DNO_DIRECT_RPC -MIG = $(NEXT_ROOT)/usr/bin/mig - -auditd_control_server.c : auditd_control.defs - cp $(SRCROOT)/auditd.tproj/auditd_control.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user /dev/null -server auditd_control_server.c -sheader auditd_control_server.h auditd_control.defs - -audit_triggers_server.c: audit_triggers.defs - cp $(SRCROOT)/auditd.tproj/audit_triggers.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user /dev/null -server audit_triggers_server.c -sheader audit_triggers_server.h audit_triggers.defs - -install-startup: - install -d $(ETCDIR)/security - install -c -m 400 rc.audit $(ETCDIR)/security/rc.audit - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man8 - install -c -m 444 auditd.8 $(DSTROOT)/usr/share/man/man8/auditd.8 diff --git a/auditd.tproj/Makefile.preamble b/auditd.tproj/Makefile.preamble deleted file mode 100644 index 162794a..0000000 --- a/auditd.tproj/Makefile.preamble +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 2004, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -OTHER_GENERATED_OFILES = $(VERS_OFILE) -BEFORE_BUILD = auditd_control_server.c auditd_control_server.h \ - audit_triggers_server.c audit_triggers_server.h -OTHER_OFILES = auditd_control_server.o audit_triggers_server.o -AFTER_INSTALL += install-startup install-man-page diff --git a/auditd.tproj/PB.project b/auditd.tproj/PB.project deleted file mode 100644 index f3df43c..0000000 --- a/auditd.tproj/PB.project +++ /dev/null @@ -1,38 +0,0 @@ -{ - "DYNAMIC_CODE_GEN" = YES; - FILESTABLE = { - FRAMEWORKS = (); - "H_FILES" = ("auditd.h"); - "OTHER_LINKED" = ("audit_warn.c", "auditd.c"); - "OTHER_SOURCES" = ( - "Makefile.preamble", - Makefile, - "Makefile.postamble", - "audit_triggers.defs", - "auditd_control.defs", - "auditd.8", - "rc.audit" - ); - "PRECOMPILED_HEADERS" = (); - "PROJECT_HEADERS" = (); - "PUBLIC_HEADERS" = (); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - "NEXTSTEP_BUILDTOOL" = "/usr/bin/gnumake"; - "NEXTSTEP_INSTALLDIR" = "/usr/sbin"; - "NEXTSTEP_JAVA_COMPILER" = "/usr/bin/javac"; - "NEXTSTEP_LINKEROPTIONS" = "-lbsm"; - "NEXTSTEP_OBJCPLUS_COMPILER" = "/usr/bin/cc"; - "PDO_UNIX_BUILDTOOL" = "$NEXT_ROOT/Developer/bin/make"; - "PDO_UNIX_INSTALLDIR" = "/bin"; - "PDO_UNIX_JAVA_COMPILER" = "$(JDKBINDIR)/javac"; - "PDO_UNIX_OBJCPLUS_COMPILER" = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = auditd; - PROJECTTYPE = Tool; - PROJECTVERSION = "2.8"; - "WINDOWS_BUILDTOOL" = "$NEXT_ROOT/Developer/Executables/make"; - "WINDOWS_INSTALLDIR" = "/Library/Executables"; - "WINDOWS_JAVA_COMPILER" = "$(JDKBINDIR)/javac.exe"; - "WINDOWS_OBJCPLUS_COMPILER" = "$(DEVDIR)/gcc"; -} diff --git a/bootlog.tproj/Makefile b/bootlog.tproj/Makefile index 8cdd7ca..2799354 100644 --- a/bootlog.tproj/Makefile +++ b/bootlog.tproj/Makefile @@ -1,48 +1,8 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = bootlog - -PROJECTVERSION = 1.0 -PROJECT_TYPE = Tool +Project = bootlog +Install_Dir = /usr/libexec CFILES = bootlog.c +MANPAGES = bootlog.8 +LAUNCHD_PLISTS = com.apple.bootlog.plist -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble\ - com.apple.bootlog.plist bootlog.8 - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/libexec -WINDOWS_INSTALLDIR = /usr/libexec -PDO_UNIX_INSTALLDIR = /usr/libexec -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/bootlog.tproj/Makefile.postamble b/bootlog.tproj/Makefile.postamble deleted file mode 100644 index 55649eb..0000000 --- a/bootlog.tproj/Makefile.postamble +++ /dev/null @@ -1,5 +0,0 @@ -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 bootlog.8 $(DSTROOT)/usr/share/man/man8 - mkdir -p $(DSTROOT)/System/Library/LaunchDaemons - install -c -m 444 com.apple.bootlog.plist $(DSTROOT)/System/Library/LaunchDaemons diff --git a/bootlog.tproj/Makefile.preamble b/bootlog.tproj/Makefile.preamble deleted file mode 100644 index 1bb8bf6..0000000 --- a/bootlog.tproj/Makefile.preamble +++ /dev/null @@ -1 +0,0 @@ -# empty diff --git a/bootlog.tproj/PB.project b/bootlog.tproj/PB.project deleted file mode 100644 index 020b199..0000000 --- a/bootlog.tproj/PB.project +++ /dev/null @@ -1,24 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - CLASSES = (); - OTHER_LIBS = (); - OTHER_LINKED = (dummy.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = usr-share-locale; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/chkpasswd.tproj/Makefile b/chkpasswd.tproj/Makefile index 744d3b7..f16cc43 100644 --- a/chkpasswd.tproj/Makefile +++ b/chkpasswd.tproj/Makefile @@ -1,53 +1,13 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = chkpasswd - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = chkpasswd +Install_Dir = /usr/libexec HFILES = stringops.h - CFILES = ds_passwd.c nis_passwd.c file_passwd.c passwd.c\ stringops.c +MANPAGES = chkpasswd.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble chkpasswd.8 - - -MAKEFILEDIR = /System/Developer/Makefiles/project -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/libexec -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) +Extra_Frameworks = -framework DirectoryService --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +Install_Program_Mode = 04555 diff --git a/chkpasswd.tproj/Makefile.postamble b/chkpasswd.tproj/Makefile.postamble deleted file mode 100644 index d309dcb..0000000 --- a/chkpasswd.tproj/Makefile.postamble +++ /dev/null @@ -1,10 +0,0 @@ - -INSTALL_AS_USER = root -INSTALL_PERMISSIONS = 4555 -#CHFLAGS = /usr/bin/chflags -#after_install:: -# $(CHFLAGS) schg $(DSTROOT)$(INSTALLDIR)/$(NAME) - -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 chkpasswd.8 $(DSTROOT)/usr/share/man/man8 diff --git a/chkpasswd.tproj/Makefile.preamble b/chkpasswd.tproj/Makefile.preamble deleted file mode 100644 index efe44b4..0000000 --- a/chkpasswd.tproj/Makefile.preamble +++ /dev/null @@ -1,2 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) -CLEAN_ALL_SUBPROJECTS = YES diff --git a/chkpasswd.tproj/PB.project b/chkpasswd.tproj/PB.project deleted file mode 100644 index 41733e0..0000000 --- a/chkpasswd.tproj/PB.project +++ /dev/null @@ -1,29 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - CLASSES = (); - C_FILES = (); - H_FILES = (stringops.h); - OTHER_LIBS = (); - OTHER_LINKED = (nis_passwd.c, file_passwd.c, passwd.c, stringops.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = /System/Developer/Makefiles/project; - NEXTSTEP_BUILDDIR = "/tmp/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/libexec; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = chkpasswd; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/chkpasswd.tproj/ds_passwd.c b/chkpasswd.tproj/ds_passwd.c index 29c18d9..908e69b 100644 --- a/chkpasswd.tproj/ds_passwd.c +++ b/chkpasswd.tproj/ds_passwd.c @@ -299,4 +299,4 @@ int ds_check_passwd(char *uname, char *domain) - \ No newline at end of file + diff --git a/chkpasswd.tproj/netinfo_passwd.c b/chkpasswd.tproj/netinfo_passwd.c new file mode 100644 index 0000000..a666acb --- /dev/null +++ b/chkpasswd.tproj/netinfo_passwd.c @@ -0,0 +1,354 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern void checkpasswd(char *, char *); + +#if 0 +static int +sys_ismyaddress(unsigned long addr) +{ + struct ifconf ifc; + struct ifreq *ifr; + char buf[1024]; /* XXX */ + int offset; + int sock; + struct sockaddr_in *sin; + + if (addr == htonl(INADDR_LOOPBACK)) return 1; + + sock = socket(AF_INET, SOCK_DGRAM, 0); + + if (sock < 0) return 0; + + ifc.ifc_len = sizeof(buf); + ifc.ifc_buf = buf; + + if (ioctl(sock, SIOCGIFCONF, (char *)&ifc) < 0) + { + close(sock); + return 0; + } + + offset = 0; + + while (offset <= ifc.ifc_len) + { + ifr = (struct ifreq *)(ifc.ifc_buf + offset); + offset += IFNAMSIZ + ifr->ifr_addr.sa_len; + + if (ifr->ifr_addr.sa_family != AF_INET) continue; + if (ioctl(sock, SIOCGIFFLAGS, ifr) < 0) continue; + + sin = (struct sockaddr_in *)&ifr->ifr_addr; + if ((ifr->ifr_flags & IFF_UP) && + (!(ifr->ifr_flags & IFF_LOOPBACK)) && + (sin->sin_addr.s_addr == addr)) + { + close(sock); + return 1; + } + } + + close(sock); + return 0; +} + +static int +is_root_on_master(void *d) +{ + int uid; + char myhostname[MAXHOSTNAMELEN + 1]; + char *p; + ni_index where; + ni_proplist pl; + int status; + ni_id dir; + struct sockaddr_in addr; + char *tag; + + uid = getuid(); + if (uid != 0) return 0; + + gethostname(myhostname, MAXHOSTNAMELEN); + p = strchr(myhostname, '.'); + if (p != NULL) *p = '\0'; + + status = ni_root(d, &dir); + if (status != NI_OK) return 0; + + status = ni_read(d, &dir, &pl); + if (status != NI_OK) return 0; + + where = ni_proplist_match(pl, "master", NULL); + if (where == NI_INDEX_NULL) + { + ni_proplist_free(&pl); + return 0; + } + + if (pl.ni_proplist_val[where].nip_val.ni_namelist_len == 0) + { + ni_proplist_free(&pl); + fprintf(stderr, "No value for NetInfo master property\n"); + return 0; + } + + p = strchr(pl.ni_proplist_val[where].nip_val.ni_namelist_val[0], '/'); + if (p != NULL) *p = '\0'; + + p = strchr(pl.ni_proplist_val[where].nip_val.ni_namelist_val[0], '.'); + if (p != NULL) *p = '\0'; + + if (!strcmp(pl.ni_proplist_val[where].nip_val.ni_namelist_val[0], myhostname)) + { + ni_proplist_free(&pl); + return 1; + } + + if (!strcmp(pl.ni_proplist_val[where].nip_val.ni_namelist_val[0], "localhost")) + { + ni_proplist_free(&pl); + ni_addrtag(d, &addr, &tag); + if (sys_ismyaddress(addr.sin_addr.s_addr)) return 1; + } + + ni_proplist_free(&pl); + return 0; +} + +static int +secure_passwords() +{ + void *d, *d1; + int status; + ni_index where; + ni_id dir; + ni_namelist nl; + + status = ni_open(NULL, ".", &d); + while (status == NI_OK) + { + dir.nii_object = 0; + status = ni_lookupprop(d, &dir, "security_options", &nl); + if (status == NI_OK) + { + where = ni_namelist_match(nl, "secure_passwords"); + if (where != NI_INDEX_NULL) + { + ni_free(d); + return 1; + } + } + + d1 = d; + status = ni_open(d1, "..", &d); + ni_free(d1); + } + + return 0; +} +#endif /* 0 */ + +static void +parse_server_tag(char *str, struct sockaddr_in *server, char **t) +{ + /* utility to parse a server/tag string */ + + int len, i; + char *host, *tag, *slash; + struct hostent *hent; + + len = strlen(str); + + /* find the "/" character */ + slash = index(str, '/'); + + /* check to see if the "/" is missing */ + if (slash == NULL) + { + fprintf(stderr, "incorrect format \"%s\" for domain name\n", str); + exit(1); + } + + /* find the location of the '/' */ + i = slash - str; + + /* check if host string is empty */ + if (i == 0) + { + fprintf(stderr, "incorrect format \"%s\" for domain name\n", str); + fprintf(stderr, "no server name specified\n"); + exit(1); + } + + /* check if tag string is empty */ + if (i == (len - 1)) + { + fprintf(stderr, "incorrect format \"%s\" for domain name\n", str); + fprintf(stderr, "no tag specified\n"); + exit(1); + } + + /* allocate some space for the host and tag */ + host = (char *)malloc(i + 1); + *t = (char *)malloc(len - i); + tag = *t; + + /* copy out the host */ + strncpy(host, str, i); + host[i] = '\0'; + + /* copy out the tag */ + strcpy(tag, slash + 1); + + /* try interpreting the host portion as an address */ + server->sin_addr.s_addr = inet_addr(host); + + if (server->sin_addr.s_addr == -1) + { + /* This isn't a valid address. Is it a known hostname? */ + hent = gethostbyname(host); + if (hent != NULL) + { + /* found a host with that name */ + bcopy(hent->h_addr, &server->sin_addr, hent->h_length); + } + else + { + fprintf(stderr, "Can't find address for %s\n", host); + free(host); + free(tag); + exit(1); + } + } + + free(host); +} + +static void * +domain_for_user(char *uname, char *locn, ni_id *dir) +{ + char *upath; + int status; + void *d, *d1; + struct sockaddr_in server; + char *tag; + int bytag; + + /* + * Find the user in NetInfo. + */ + upath = malloc(8 + strlen(uname)); + sprintf(upath, "/users/%s", uname); + + if (locn != NULL) + { + bytag = 1; + + if (locn[0] == '/') bytag = 0; + else if (!strncmp(locn, "./", 2)) bytag = 0; + else if (!strncmp(locn, "../", 3)) bytag = 0; + + if (bytag == 1) + { + parse_server_tag(locn, &server, &tag); + d = ni_connect(&server, tag); + if (d == (void *)NULL) return (void *)NULL; + } + else status = ni_open(NULL, locn, &d); + status = ni_pathsearch(d, dir, upath); + free(upath); + + if (status == NI_OK) return d; + + ni_free(d); + return (void *)NULL; + } + + status = ni_open(NULL, ".", &d); + while (status == NI_OK) + { + status = ni_pathsearch(d, dir, upath); + if (status == NI_OK) break; + d1 = d; + status = ni_open(d1, "..", &d); + ni_free(d1); + } + + free(upath); + + if (status == NI_OK) return d; + return (void *)NULL; +} + +int +netinfo_check_passwd(char *uname, char *locn) +{ + char *oldpw; + void *d; + int status; + ni_id dir; + ni_namelist nl; + + d = domain_for_user(uname, locn, &dir); + if (d == (void *)NULL) + { + fprintf(stderr, "user %s not found in NetInfo\n", uname); + exit(1); + } + + /* + * Read the passwd and uid from NetInfo. + */ + status = ni_lookupprop(d, &dir, "passwd", &nl); + if (status == NI_NOPROP) nl.ni_namelist_len = 0; + else if (status != NI_OK) + { + ni_free(d); + fprintf(stderr, "NetInfo read failed: %s\n", ni_error(status)); + exit(1); + } + + oldpw = NULL; + if (nl.ni_namelist_len > 0) oldpw = nl.ni_namelist_val[0]; + + checkpasswd(uname, oldpw); + ni_free(d); + return (0); +} diff --git a/chpass.tproj/IMPORT_NOTES b/chpass.tproj/IMPORT_NOTES new file mode 100644 index 0000000..457907b --- /dev/null +++ b/chpass.tproj/IMPORT_NOTES @@ -0,0 +1 @@ +chpass.1 - FreeBSD file with references to yp items deleted diff --git a/chpass.tproj/Makefile b/chpass.tproj/Makefile index 8cb711e..6d3d8ed 100644 --- a/chpass.tproj/Makefile +++ b/chpass.tproj/Makefile @@ -1,58 +1,22 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = chpass - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = chpass +Install_Dir = /usr/bin +Extra_CC_Flags = -DOPEN_DIRECTORY -fconstant-cfstrings \ + -I../pwd_mkdb.tproj -I../vipw.tproj \ + -F/System/Library/PrivateFrameworks HFILES = chpass.h open_directory.h pw_copy.h - CFILES = chpass.c edit.c field.c pw_copy.c table.c util.c \ open_directory.c +MANPAGES = chpass.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble chpass.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I../pwd_mkdb.tproj -I../vipw.tproj -FRAMEWORK_PATHS = -F/System/Library/PrivateFrameworks -FRAMEWORKS = -framework OpenDirectory -framework CoreFoundation -PROJECT_HEADERS = pw_copy.h - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble +Extra_Frameworks = -F/System/Library/PrivateFrameworks -framework OpenDirectory -framework CoreFoundation -include $(MAKEFILEDIR)/$(MAKEFILE) +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.postamble +Install_Program_Mode = 04555 --include Makefile.dependencies +after_install: + $(LN) -sf chpass.1 $(DSTROOT)/usr/share/man/man1/chfn.1 + $(LN) -sf chpass.1 $(DSTROOT)/usr/share/man/man1/chsh.1 + $(LN) -f $(DSTROOT)$(Install_Dir)/chpass $(DSTROOT)$(Install_Dir)/chfn + $(LN) -f $(DSTROOT)$(Install_Dir)/chpass $(DSTROOT)$(Install_Dir)/chsh diff --git a/chpass.tproj/Makefile.postamble b/chpass.tproj/Makefile.postamble deleted file mode 100644 index d24a24f..0000000 --- a/chpass.tproj/Makefile.postamble +++ /dev/null @@ -1,18 +0,0 @@ -#VPATH += :../pwd_mkdb.tproj:../vipw.tproj - -INSTALL_AS_USER = root -INSTALL_AS_GROUP = wheel -INSTALL_PERMISSIONS = 4555 - -after_install:: - install -o $(INSTALL_AS_USER) -m 755 -d $(DSTROOT)/usr/share/man/man1 - install -o $(INSTALL_AS_USER) -m 644 -c chpass.1 \ - $(DSTROOT)/usr/share/man/man1 - $(LN) -sf chpass.1 $(DSTROOT)/usr/share/man/man1/chfn.1 - $(LN) -sf chpass.1 $(DSTROOT)/usr/share/man/man1/chsh.1 - chown $(INSTALL_AS_USER):$(INSTALL_AS_GROUP) \ - $(DSTROOT)/usr/share/man/man1/chfn.1 - chown $(INSTALL_AS_USER):$(INSTALL_AS_GROUP) \ - $(DSTROOT)/usr/share/man/man1/chsh.1 - $(LN) -f $(INSTALLED_PRODUCTS) $(DSTROOT)$(INSTALLDIR)/chfn - $(LN) -f $(INSTALLED_PRODUCTS) $(DSTROOT)$(INSTALLDIR)/chsh diff --git a/chpass.tproj/Makefile.preamble b/chpass.tproj/Makefile.preamble deleted file mode 100644 index 56871f3..0000000 --- a/chpass.tproj/Makefile.preamble +++ /dev/null @@ -1,6 +0,0 @@ -CLEAN_ALL_SUBPROJECTS = YES -OTHER_CFLAGS = -DOPEN_DIRECTORY -fconstant-cfstrings -OTHER_LDFLAGS = -OTHER_OFILES = -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/chpass.tproj/PB.project b/chpass.tproj/PB.project deleted file mode 100644 index 03849a4..0000000 --- a/chpass.tproj/PB.project +++ /dev/null @@ -1,30 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - CLASSES = (); - C_FILES = (); - HEADERSEARCH = (); - H_FILES = (chpass.h, pw_copy.h, open_directory.h); - OTHER_LIBS = (); - OTHER_LINKED = (chpass.c, edit.c, field.c, pw_copy.c, table.c, util.c, open_directory.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, chpass.1); - PROJECT_HEADERS = (pw_copy.h); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = chpass; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/dirhelper.tproj/Makefile b/dirhelper.tproj/Makefile index 5ba9105..1e301e7 100644 --- a/dirhelper.tproj/Makefile +++ b/dirhelper.tproj/Makefile @@ -1,63 +1,13 @@ +Project = dirhelper +Install_Dir = /usr/libexec -ifeq "$(SRCROOT)" "" - SRCROOT=$(shell pwd) -endif -ifeq "$(OBJROOT)" "" - OBJROOT=$(shell pwd) -endif -ifeq "$(SYMROOT)" "" - SYMROOT=$(shell pwd) -endif -ifeq "$(DSTROOT)" "" - DSTROOT= -endif +CFILES = dirhelper.c +SERVERDEFS = /usr/local/include/dirhelper.defs +MANPAGES = dirhelper.8 +LAUNCHD_PLISTS = com.apple.bsd.dirhelper.plist -ifneq "$(shell basename $(SRCROOT))" "dirhelper.tproj" -SRCDIR=$(SRCROOT)/dirhelper.tproj -else -SRCDIR=$(SRCROOT) -endif -OBJDIR=$(OBJROOT)/dirhelper.obj +Extra_CC_Flags = -D__MigTypeCheck=1 +#CFLAGS = -g -mdynamic-no-pic -Os -Wall -Wextra -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1 $(RC_CFLAGS) -I $(OBJDIR) +Extra_LD_Flags = -lbsm -CFLAGS = -g -mdynamic-no-pic -Os -Wall -Wextra -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1 $(RC_CFLAGS) -I $(OBJDIR) - -LDFLAGS = -lbsm - -all: dirhelper - -dirhelper: mighdrs - cc -c $(CFLAGS) -o $(OBJDIR)/dirhelperServer.o $(OBJDIR)/dirhelperServer.c - cc -c $(CFLAGS) -o $(OBJDIR)/dirhelperUser.o $(OBJDIR)/dirhelperUser.c - cc -c $(CFLAGS) -o $(OBJDIR)/dirhelper.o $(SRCDIR)/dirhelper.c - cc $(CFLAGS) $(LDFLAGS) -o $(SYMROOT)/dirhelper $(OBJDIR)/dirhelperServer.o $(OBJDIR)/dirhelperUser.o $(OBJDIR)/dirhelper.o - -client: mighdrs - cc $(CFLAGS) $(LDFLAGS) -o $(SYMROOT)/client $(SRCDIR)/client.c $(OBJDIR)/dirhelperUser.c - -install: dirhelper - install -m 0644 -o root -g wheel -d $(DSTROOT)/System/Library/LaunchDaemons - install -m 0644 -o root -g wheel com.apple.bsd.dirhelper.plist $(DSTROOT)/System/Library/LaunchDaemons/ - install -m 0755 -o root -g wheel -d $(DSTROOT)/usr/libexec - install -m 0755 -o root -g wheel $(SYMROOT)/dirhelper $(DSTROOT)/usr/libexec/ - strip -S $(DSTROOT)/usr/libexec/dirhelper - mkdir -p "$(DSTROOT)/usr/share/man/man8" - gzip -c "$(SRCDIR)/dirhelper.8" > "$(DSTROOT)/usr/share/man/man8/dirhelper.8.gz" - -installsrc: - mkdir "$(SRCDIR)" - tar cf - . | tar xf - -C "$(SRCDIR)" - -mighdrs: - mkdir -p $(OBJDIR) - cd $(OBJDIR) && mig -sheader dirhelperServer.h /usr/local/include/dirhelper.defs - -installhdrs: - @echo nothing to install - -#installhdrs: mighdrs -# install -m 0755 -o root -g wheel -d $(DSTROOT)/usr/local/include -# install -m 0644 -o root -g wheel $(OBJDIR)/dirhelper.h $(DSTROOT)/usr/local/include/ - -clean: - -rm -f *.o client dirhelper - -rm -rf dirhelper.obj +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/dirhelper.tproj/dirhelper.c b/dirhelper.tproj/dirhelper.c index f9ceffb..e925332 100644 --- a/dirhelper.tproj/dirhelper.c +++ b/dirhelper.tproj/dirhelper.c @@ -45,8 +45,7 @@ #include #include -#include "dirhelper.h" -#include "dirhelperServer.h" +#include "dirhelper_server.h" // globals for idle exit struct idle_globals { diff --git a/dmesg.tproj/Makefile b/dmesg.tproj/Makefile index 878e0a7..955ab2c 100644 --- a/dmesg.tproj/Makefile +++ b/dmesg.tproj/Makefile @@ -1,51 +1,10 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = dmesg - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = dmesg +Install_Dir = /sbin CFILES = dmesg.c - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble Makefile.dist\ - dmesg.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC +MANPAGES = dmesg.8 MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /sbin -WINDOWS_INSTALLDIR = /sbin -PDO_UNIX_INSTALLDIR = /sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) --include Makefile.postamble +Extra_LD_Flags = -lproc --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/dmesg.tproj/Makefile.dist b/dmesg.tproj/Makefile.dist deleted file mode 100644 index 44aa81f..0000000 --- a/dmesg.tproj/Makefile.dist +++ /dev/null @@ -1,9 +0,0 @@ -# @(#)Makefile 8.1 (Berkeley) 6/5/93 - -PROG= dmesg -MAN8= dmesg.0 - -CFLAGS += -I/System/Library/Frameworks/System.framework/PrivateHeaders/ -LDADD= -lproc - -.include diff --git a/dmesg.tproj/Makefile.postamble b/dmesg.tproj/Makefile.postamble deleted file mode 100644 index 63ae797..0000000 --- a/dmesg.tproj/Makefile.postamble +++ /dev/null @@ -1,3 +0,0 @@ -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 dmesg.8 $(DSTROOT)/usr/share/man/man8 diff --git a/dmesg.tproj/Makefile.preamble b/dmesg.tproj/Makefile.preamble deleted file mode 100644 index 965d56b..0000000 --- a/dmesg.tproj/Makefile.preamble +++ /dev/null @@ -1,4 +0,0 @@ -OTHER_CFLAGS = -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders -OTHER_LIBS = -lproc -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/dmesg.tproj/PB.project b/dmesg.tproj/PB.project deleted file mode 100644 index 22572b4..0000000 --- a/dmesg.tproj/PB.project +++ /dev/null @@ -1,31 +0,0 @@ -{ - APPCLASS = NSApplication; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (); - M_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (dmesg.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, Makefile.dist, dmesg.8); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_MAINNIB = dmesg; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_MAINNIB = dmesg; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = dmesg; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_MAINNIB = dmesg; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/dp_notify_lib/Makefile b/dp_notify_lib/Makefile index 725d4b4..8b8e4f0 100644 --- a/dp_notify_lib/Makefile +++ b/dp_notify_lib/Makefile @@ -1,56 +1,18 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# +Project = dp_notify_lib +ProductType = staticlib +Install_Dir = /usr/local/lib -NAME = dp_notify_lib +SERVERDEFS = ../dynamic_pager.tproj/backing_store_alerts.defs +USERDEFS = ../dynamic_pager.tproj/backing_store_triggers.defs -PROJECTVERSION = 2.8 -PROJECT_TYPE = Library +Extra_MIG_Flags = -no-cpp-precomp -R -untyped -DNO_DIRECT_RPC -I$(SRCROOT) +Extra_LD_Flags = -static -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble m.template\ - h.template backing_store_alerts.defs\ - backing_store_triggers.defs +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CURRENTLY_ACTIVE_VERSION = YES -DEPLOY_WITH_VERSION_NAME = A -CODE_GEN_STYLE = STATIC -MAKEFILE = library.make -NEXTSTEP_INSTALLDIR = /usr/local/lib -WINDOWS_INSTALLDIR = /Developer/Libraries -PDO_UNIX_INSTALLDIR = /lib -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -FRAMEWORK_PATHS = -NEXTSTEP_PB_LDFLAGS = -static -FRAMEWORKS = - - -WINDOWS_PUBLIC_HEADERS_DIR = $(HOMEDRIVE)$(LOCAL_DEVELOPER_DIR)/Headers/$(NAME) - -PDO_UNIX_PUBLIC_HEADERS_DIR = $(LOCAL_DEVELOPER_DIR)/Headers/$(NAME) - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +after_install: + $(INSTALL_DIRECTORY) $(DSTROOT)/usr/local/include/mach + $(INSTALL_FILE) $(OBJROOT)/$(Project)/backing_store_alerts_server.h \ + $(DSTROOT)/usr/local/include/mach + $(INSTALL_FILE) $(OBJROOT)/$(Project)/backing_store_triggers.h \ + $(DSTROOT)/usr/local/include/mach diff --git a/dp_notify_lib/Makefile.postamble b/dp_notify_lib/Makefile.postamble deleted file mode 100644 index 76afa21..0000000 --- a/dp_notify_lib/Makefile.postamble +++ /dev/null @@ -1,133 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - -INSTALLDIR = /usr/local/lib - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -MIGFLAGS = -no-cpp-precomp -R -untyped -DNO_DIRECT_RPC -I$(SRCROOT) -MIG = $(NEXT_ROOT)/usr/bin/mig - -backing_store_alerts_server.c: \ - backing_store_alerts.defs - ${MKDIRS} \ - ${DSTROOT}${PUBLIC_HDR_INSTALLDIR}${PUBLIC_HEADER_DIR_SUFFIX}; - cp backing_store_alerts.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user /dev/null -server \ - backing_store_alerts_server.c -sheader backing_store_alerts_server.h \ - backing_store_alerts.defs - -backing_store_triggers.c: \ - backing_store_triggers.defs - cp backing_store_triggers.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user backing_store_triggers.c -server /dev/null -header backing_store_triggers.h backing_store_triggers.defs - -backing_store_alerts_server.h: backing_store_alerts_server.c - -backing_store_triggers.h: backing_store_triggers.c - -static: - $(SILENT) unset $(CUMULATIVE_VARIABLES) ||: ; \ - $(MAKE) BUILD_TYPE=$@ BUILD_TYPE_SUFFIX=$(STATIC_SUFFIX) - -copy_dstroot: - ${CP} $(SYM_DIR)/backing_store_triggers.h $(DSTROOT)${PUBLIC_HDR_INSTALLDIR}${PUBLIC_HEADER_DIR_SUFFIX} - ${CP} $(SYM_DIR)/backing_store_alerts_server.h $(DSTROOT)${PUBLIC_HDR_INSTALLDIR}${PUBLIC_HEADER_DIR_SUFFIX} - ${CHMOD} 444 $(DSTROOT)${PUBLIC_HDR_INSTALLDIR}${PUBLIC_HEADER_DIR_SUFFIX}/backing_store_triggers.h - ${CHMOD} 444 $(DSTROOT)${PUBLIC_HDR_INSTALLDIR}${PUBLIC_HEADER_DIR_SUFFIX}/backing_store_alerts_server.h diff --git a/dp_notify_lib/Makefile.preamble b/dp_notify_lib/Makefile.preamble deleted file mode 100644 index 31a37e3..0000000 --- a/dp_notify_lib/Makefile.preamble +++ /dev/null @@ -1,145 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -VPATH_PREAMBLE = ../dynamic_pager.tproj: -#DSTROOT = $(HOME) -LIBRARY_STYLE = STATIC -OTHER_OFILES = backing_store_alerts_server.o backing_store_triggers.o -BEFORE_BUILD = backing_store_alerts_server.o backing_store_triggers.o -PUBLIC_HDR_INSTALLDIR = /usr/local/include -PUBLIC_HEADER_DIR_SUFFIX = /mach -LIBRARY_STYLE = STATIC -AFTER_INSTALL += copy_dstroot diff --git a/dp_notify_lib/PB.project b/dp_notify_lib/PB.project deleted file mode 100644 index f749d81..0000000 --- a/dp_notify_lib/PB.project +++ /dev/null @@ -1,36 +0,0 @@ -{ - CURRENTLY_ACTIVE_VERSION = YES; - DEPLOY_WITH_VERSION_NAME = A; - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - OTHER_SOURCES = ( - Makefile.preamble, - Makefile, - Makefile.postamble, - m.template, - h.template, - backing_store_alerts.defs, - backing_store_triggers.defs - ); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/local/lib; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = "-static"; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_INSTALLDIR = /lib; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PDO_UNIX_PUBLICHEADERSDIR = "$(LOCAL_DEVELOPER_DIR)/Headers/$(NAME)"; - PROJECTNAME = dp_notify_lib; - PROJECTTYPE = Library; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Developer/Libraries; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; - WINDOWS_PUBLICHEADERSDIR = "$(HOMEDRIVE)$(LOCAL_DEVELOPER_DIR)/Headers/$(NAME)"; -} diff --git a/dp_notify_lib/h.template b/dp_notify_lib/h.template deleted file mode 100644 index f3c1b04..0000000 --- a/dp_notify_lib/h.template +++ /dev/null @@ -1,11 +0,0 @@ -$$ -/* $FILENAME$ created by $USERNAME$ on $DATE$ */ - -#import - -@interface $FILENAMESANSEXTENSION$ : NSObject -{ - -} - -@end diff --git a/dp_notify_lib/m.template b/dp_notify_lib/m.template deleted file mode 100644 index 1216fe5..0000000 --- a/dp_notify_lib/m.template +++ /dev/null @@ -1,18 +0,0 @@ -$$ Lines starting with $$ are not inserted into newly created files -$$ The following substitutions are made: -$$ -$$ $FILENAME$ e.g. foo.m -$$ $FILENAMESANSEXTENSION$ e.g. foo -$$ $DIRECTORY$ e.g. /tmp/MyNewApp -$$ $PROJECTNAME$ e.g. MyNewApp -$$ $SUBPROJECTNAME$ e.g. TheGoodPart.subproj -$$ $USERNAME$ e.g. mwagner -$$ $DATE$ e.g. Jan-1-1994 -$$ -/* $FILENAME$ created by $USERNAME$ on $DATE$ */ - -#import "$FILENAMESANSEXTENSION$.h" - -@implementation $FILENAMESANSEXTENSION$ - -@end diff --git a/dpkg/control b/dpkg/control new file mode 100644 index 0000000..bd3d434 --- /dev/null +++ b/dpkg/control @@ -0,0 +1,4 @@ +Package: system-cmds +Maintainer: Darwin Developers +Description: System commands +Build-Depends: build-base, librpcsvc-hdrs, libinfo-hdrs, libstreams-hdrs, iokituser, libcurses-hdrs, corefoundation, carbonheaders, project-makefiles, iostoragefamily diff --git a/dynamic_pager.tproj/Makefile b/dynamic_pager.tproj/Makefile index 3ddd6e8..24bf360 100644 --- a/dynamic_pager.tproj/Makefile +++ b/dynamic_pager.tproj/Makefile @@ -1,52 +1,25 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = dynamic_pager - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = dynamic_pager +Install_Dir = /sbin CFILES = dynamic_pager.c - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble\ - default_pager_alerts.defs backing_store_alerts.defs\ - backing_store_triggers.defs dynamic_pager.8\ - com.apple.dynamic_pager.plist - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -NEXTSTEP_PB_CFLAGS = -no-cpp-precomp -DNO_DIRECT_RPC - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +SERVERDEFS = default_pager_alerts.defs \ + backing_store_triggers.defs +USERDEFS = backing_store_alerts.defs +MANPAGES = dynamic_pager.8 +LAUNCHD_PLISTS = com.apple.dynamic_pager.plist + +Extra_CC_Flags = -no-cpp-precomp -DNO_DIRECT_RPC + +Extra_LD_Flags = -framework CoreFoundation -framework IOKit +Extra_MIG_Flags = -no-cpp-precomp -R -untyped -DNO_DIRECT_RPC + +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make + +Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) + +after_install: +ifeq "$(Embedded)" "YES" + /usr/libexec/PlistBuddy -x \ + -c "Add :Disabled bool true" \ + "$(DSTROOT)/System/Library/LaunchDaemons/com.apple.dynamic_pager.plist" +endif diff --git a/dynamic_pager.tproj/Makefile.postamble b/dynamic_pager.tproj/Makefile.postamble deleted file mode 100644 index f6c4e3b..0000000 --- a/dynamic_pager.tproj/Makefile.postamble +++ /dev/null @@ -1,144 +0,0 @@ -#PRECOMP_CFLAGS = -#NONRECURSIVE_PRECOMPFLAGS = -#OPTIMIZE_BUILD_CFLAGS = -SRC_ROOT = $(SRCROOT) - -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGE: langage in which the project is written (default "English") -# LOCAL_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -MIGFLAGS = -no-cpp-precomp -R -untyped -DNO_DIRECT_RPC -MIG = $(NEXT_ROOT)/usr/bin/mig - -Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) - -default_pager_alerts_server.c : backing_store_alerts.c \ - backing_store_triggers_server.c \ - default_pager_alerts.defs - cp $(SRCROOT)/dynamic_pager.tproj/default_pager_alerts.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user /dev/null -server default_pager_alerts_server.c -sheader default_pager_alerts_server.h default_pager_alerts.defs - -backing_store_alerts.c: \ - backing_store_alerts.defs - cp $(SRCROOT)/dynamic_pager.tproj/backing_store_alerts.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -server /dev/null -user backing_store_alerts.c -header backing_store_alerts.h backing_store_alerts.defs - -backing_store_triggers_server.c: \ - backing_store_triggers.defs - cp $(SRCROOT)/dynamic_pager.tproj/backing_store_triggers.defs $(SYM_DIR); - cd $(SYM_DIR) && \ - $(MIG) $(MIGFLAGS) -user /dev/null -server backing_store_triggers_server.c -sheader backing_store_triggers_server.h backing_store_triggers.defs - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man8 - install -c -m 444 dynamic_pager.8 $(DSTROOT)/usr/share/man/man8/dynamic_pager.8 - -LAUNCHD_PLIST_DIR = $(DSTROOT)/System/Library/LaunchDaemons -LAUNCHD_PLIST = com.apple.dynamic_pager.plist - -install-launchd-plist: - install -d $(LAUNCHD_PLIST_DIR) - install -c -m 644 $(LAUNCHD_PLIST) $(LAUNCHD_PLIST_DIR)/$(LAUNCHD_PLIST) -ifeq "$(Embedded)" "YES" - /usr/libexec/PlistBuddy -x \ - -c "Add :Disabled bool true" \ - "$(LAUNCHD_PLIST_DIR)/$(LAUNCHD_PLIST)" -endif diff --git a/dynamic_pager.tproj/Makefile.preamble b/dynamic_pager.tproj/Makefile.preamble deleted file mode 100644 index 1acf0bc..0000000 --- a/dynamic_pager.tproj/Makefile.preamble +++ /dev/null @@ -1,131 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. <> -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO -OTHER_OFILES = default_pager_alerts_server.o backing_store_alerts.o backing_store_triggers_server.o -#OTHER_PUBLIC_HEADERS = default_pager_alerts_server.h -#OTHER_GENERATED_OFILES = $(VERS_OFILE) --include ../Makefile.include -OTHER_CFLAGS = -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders -OTHER_LDFLAGS = -framework CoreFoundation -framework IOKit -BEFORE_BUILD = default_pager_alerts_server.o -AFTER_INSTALL += install-man-page install-launchd-plist diff --git a/dynamic_pager.tproj/PB.project b/dynamic_pager.tproj/PB.project deleted file mode 100644 index 35c4a82..0000000 --- a/dynamic_pager.tproj/PB.project +++ /dev/null @@ -1,35 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - FRAMEWORKS = (); - OTHER_LINKED = (dynamic_pager.c); - OTHER_SOURCES = ( - Makefile.preamble, - Makefile, - Makefile.postamble, - default_pager_alerts.defs, - backing_store_alerts.defs, - backing_store_triggers.defs, - dynamic_pager.8, - com.apple.dynamic_pager.plist - ); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/tmp/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_COMPILEROPTIONS = "-traditional-cpp -DNO_DIRECT_RPC"; - NEXTSTEP_INSTALLDIR = /sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = dynamic_pager; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/fs_usage.tproj/Makefile b/fs_usage.tproj/Makefile index f636254..7d3d5a0 100644 --- a/fs_usage.tproj/Makefile +++ b/fs_usage.tproj/Makefile @@ -1,50 +1,10 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = fs_usage - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = fs_usage +Install_Dir = /usr/bin CFILES = fs_usage.c +MANPAGES = fs_usage.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble fs_usage.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I$(NEXT_ROOT)/System/Library/System.framework/\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd\ - -I$(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders/bsd - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +Extra_CC_Flags = -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ + -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/fs_usage.tproj/Makefile.postamble b/fs_usage.tproj/Makefile.postamble deleted file mode 100644 index fb9cd4c..0000000 --- a/fs_usage.tproj/Makefile.postamble +++ /dev/null @@ -1,107 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) - -WARNING_CFLAGS = -Wall - -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = 4555 - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 fs_usage.1 $(DSTROOT)/usr/share/man/man1/fs_usage.1 diff --git a/fs_usage.tproj/Makefile.preamble b/fs_usage.tproj/Makefile.preamble deleted file mode 100644 index a4606c6..0000000 --- a/fs_usage.tproj/Makefile.preamble +++ /dev/null @@ -1,140 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) - -AFTER_INSTALL += install-man-page - diff --git a/fs_usage.tproj/PB.project b/fs_usage.tproj/PB.project deleted file mode 100644 index cfa38d3..0000000 --- a/fs_usage.tproj/PB.project +++ /dev/null @@ -1,26 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - HEADERSEARCH = ("$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd"); - OTHER_LINKED = (fs_usage.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, fs_usage.1); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_COMPILEROPTIONS = "-DKERNEL_PRIVATE"; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_INSTALLDIR = /bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = fs_usage; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Library/Executables; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/getconf.tproj/Makefile b/getconf.tproj/Makefile index 37f83c9..5e86b05 100644 --- a/getconf.tproj/Makefile +++ b/getconf.tproj/Makefile @@ -1,52 +1,18 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# +Project = getconf +Install_Dir = /usr/bin -NAME = getconf +CFILES = getconf.c \ + $(OBJROOT)/$(Project)/confstr.c \ + $(OBJROOT)/$(Project)/limits.c \ + $(OBJROOT)/$(Project)/pathconf.c \ + $(OBJROOT)/$(Project)/progenv.c \ + $(OBJROOT)/$(Project)/sysconf.c +MANPAGES = getconf.1 -PROJECTVERSION = 1.0 -PROJECT_TYPE = Tool +Extra_CC_Flags = -include _fbsd_compat.h -DAPPLE_GETCONF_UNDERSCORE \ + -DAPPLE_GETCONF_SPEC -I. -CFILES = getconf.c +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble\ - _fbsd_compat.h confstr.gperf fake-gperf.awk getconf.1\ - getconf.h limits.gperf pathconf.gperf progenv.gperf sysconf.gperf -OTHER_GENERATED_SRCFILES = $(OBJROOT)/confstr.c $(OBJROOT)/limits.c\ - $(OBJROOT)/pathconf.c $(OBJROOT)/progenv.c $(OBJROOT)/sysconf.c -OTHER_GENERATED_OFILES = confstr.o limits.o pathconf.o progenv.o sysconf.o - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +$(OBJROOT)/$(Project)/%.c: %.gperf + LC_ALL=C awk -f fake-gperf.awk $< > $@ diff --git a/getconf.tproj/Makefile.postamble b/getconf.tproj/Makefile.postamble deleted file mode 100644 index 77983ff..0000000 --- a/getconf.tproj/Makefile.postamble +++ /dev/null @@ -1,6 +0,0 @@ -INSTALL_AS_USER = root - -after_install:: - install -o $(INSTALL_AS_USER) -m 755 -d $(DSTROOT)/usr/share/man/man1 - install -o $(INSTALL_AS_USER) -m 644 -c getconf.1 \ - $(DSTROOT)/usr/share/man/man1 diff --git a/getconf.tproj/Makefile.preamble b/getconf.tproj/Makefile.preamble deleted file mode 100644 index f8a510b..0000000 --- a/getconf.tproj/Makefile.preamble +++ /dev/null @@ -1,8 +0,0 @@ --include ../Makefile.include - -$(OBJROOT)/%.c: %.gperf - LC_ALL=C awk -f fake-gperf.awk $< > $@ - -OTHER_CFLAGS += -include _fbsd_compat.h -DAPPLE_GETCONF_UNDERSCORE \ - -DAPPLE_GETCONF_SPEC -vpath %.c $(OBJROOT) diff --git a/getconf.tproj/PB.project b/getconf.tproj/PB.project deleted file mode 100644 index 020b199..0000000 --- a/getconf.tproj/PB.project +++ /dev/null @@ -1,24 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - CLASSES = (); - OTHER_LIBS = (); - OTHER_LINKED = (dummy.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = usr-share-locale; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/getty.tproj/Makefile b/getty.tproj/Makefile index 6f3af4e..8c6b7a3 100644 --- a/getty.tproj/Makefile +++ b/getty.tproj/Makefile @@ -1,51 +1,13 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = getty - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = getty +Install_Dir = /usr/libexec HFILES = extern.h gettytab.h pathnames.h - CFILES = chat.c init.c main.c subr.c +MANPAGES = getty.8 gettytab.5 ttys.5 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble getty.8\ - gettytab.5 ttys.5 com.apple.getty.plist - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/libexec -WINDOWS_INSTALLDIR = /usr/libexec -PDO_UNIX_INSTALLDIR = /usr/libexec -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +Embedded = $(shell tconf --test TARGET_OS_EMBEDDED) +ifeq ($(Embedded),YES) +LAUNCHD_PLISTS = com.apple.getty.plist +endif --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/getty.tproj/Makefile.postamble b/getty.tproj/Makefile.postamble deleted file mode 100644 index 2dc7cb8..0000000 --- a/getty.tproj/Makefile.postamble +++ /dev/null @@ -1,125 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A -#COMPATIBILITY_PROJECT_VERSION = 1 - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -WARNING_CFLAGS = -Wall -Werror -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User/group ownership -#INSTALL_AS_GROUP = wheel # (probably want to set both of these) -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S # for .a archives -#DYNAMIC_STRIP_OPTS = -S # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. - -LAUNCHD_PLIST_DIR = $(DSTROOT)/System/Library/LaunchDaemons -LAUNCHD_PLIST = com.apple.getty.plist - -Embedded = $(shell tconf --test TARGET_OS_EMBEDDED) - -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man5 - install -c -m 444 gettytab.5 $(DSTROOT)/usr/share/man/man5 - install -c -m 444 ttys.5 $(DSTROOT)/usr/share/man/man5 - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 getty.8 $(DSTROOT)/usr/share/man/man8 -ifeq "$(Embedded)" "YES" - install -d $(LAUNCHD_PLIST_DIR) - install -c -m 644 $(LAUNCHD_PLIST) $(LAUNCHD_PLIST_DIR)/$(LAUNCHD_PLIST) -endif diff --git a/getty.tproj/Makefile.preamble b/getty.tproj/Makefile.preamble deleted file mode 100644 index 4493da0..0000000 --- a/getty.tproj/Makefile.preamble +++ /dev/null @@ -1,119 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -fno-builtin-puts -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set all three of these if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the specified dir on the -# specified public header files with the specified additional flags. Don't put -# $(DSTROOT) in PUBLIC_HEADER_DIR; this is done for you. -PUBLIC_HEADER_DIR = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - - diff --git a/getty.tproj/PB.project b/getty.tproj/PB.project deleted file mode 100644 index f4b1c8b..0000000 --- a/getty.tproj/PB.project +++ /dev/null @@ -1,40 +0,0 @@ -{ - FILESTABLE = { - C_FILES = (); - H_FILES = (extern.h, gettytab.h, pathnames.h); - M_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (init.c, main.c, subr.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, getty.8, gettytab.5, ttys.5); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/libexec; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/libexec; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = getty; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/libexec; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/hostinfo.tproj/Makefile b/hostinfo.tproj/Makefile index dde9fc1..c958a9d 100644 --- a/hostinfo.tproj/Makefile +++ b/hostinfo.tproj/Makefile @@ -1,48 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = hostinfo - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = hostinfo +Install_Dir = /usr/bin CFILES = hostinfo.c +MANPAGES = hostinfo.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble hostinfo.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/hostinfo.tproj/Makefile.postamble b/hostinfo.tproj/Makefile.postamble deleted file mode 100644 index aa28ee4..0000000 --- a/hostinfo.tproj/Makefile.postamble +++ /dev/null @@ -1,129 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0) -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES - # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A - # This should be incremented as your API changes. -#COMPATIBILITY_PROJECT_VERSION = 1 - # This should be incremented as your API grows. -#CURRENT_PROJECT_VERSION = 1 - # Defaults to using the "vers_string" hack. - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wmost -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S - # for .a archives -#DYNAMIC_STRIP_OPTS = -S - # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -# Note: on MS Windows, executables, have an extension, so rules and dependencies -# for generated tools should use $(EXECUTABLE_EXT) on the end. - -SHAREDIR = /usr/share -MANDIR = $(SHAREDIR)/man/man8 - -install-man-pages: - $(MKDIRS) $(DSTROOT)$(MANDIR) - install -c -m 444 hostinfo.8 $(DSTROOT)$(MANDIR)/hostinfo.8 diff --git a/hostinfo.tproj/Makefile.preamble b/hostinfo.tproj/Makefile.preamble deleted file mode 100644 index f3349c0..0000000 --- a/hostinfo.tproj/Makefile.preamble +++ /dev/null @@ -1,144 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# If you do not want any headers exported before compilations begin, -# uncomment the following line. This can be a big time saver. -#SKIP_EXPORTING_HEADERS = YES - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product - -AFTER_INSTALL += install-man-pages - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set these two macros if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the public header directory -# on the specified public header files with the specified additional flags. -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -# Set this for library projects if you want to publish header files. If your -# app or tool project exports headers Don't -# include $(DSTROOT); this is added for you automatically. -PUBLIC_HEADER_DIR = -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Set this for dynamic library projects on platforms where code which references -# a dynamic library must link against an import library (i.e., Windows NT) -# Don't include $(DSTROOT); this is added for you automatically. -IMPORT_LIBRARY_DIR = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Uncomment this to produce a static archive-style (.a) library -#LIBRARY_STYLE = STATIC - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = -# .x files that should have rpcgen run on them -RPCFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - diff --git a/hostinfo.tproj/PB.project b/hostinfo.tproj/PB.project deleted file mode 100644 index 8520b11..0000000 --- a/hostinfo.tproj/PB.project +++ /dev/null @@ -1,27 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (); - OTHER_LINKED = (hostinfo.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = hostinfo; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/iostat.tproj/DERIVED_FILES b/iostat.tproj/DERIVED_FILES new file mode 100644 index 0000000..a0384a6 --- /dev/null +++ b/iostat.tproj/DERIVED_FILES @@ -0,0 +1 @@ +argon_usrbin/vmstat/names.c diff --git a/iostat.tproj/Makefile b/iostat.tproj/Makefile index e845622..ef85974 100644 --- a/iostat.tproj/Makefile +++ b/iostat.tproj/Makefile @@ -1,49 +1,8 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = iostat - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = iostat +Install_Dir = /usr/sbin CFILES = iostat.c +MANPAGES = iostat.8 +Extra_Frameworks = -framework CoreFoundation -framework IOKit -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble iostat.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -FRAMEWORKS = -framework CoreFoundation -framework IOKit - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/iostat.tproj/Makefile.postamble b/iostat.tproj/Makefile.postamble deleted file mode 100644 index a3600ab..0000000 --- a/iostat.tproj/Makefile.postamble +++ /dev/null @@ -1,6 +0,0 @@ -# This is modeled after the postamble script found in the -# system_cmds/ktrace.tproj/Makefile.postamble script - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man8 - install -c -m 444 iostat.8 $(DSTROOT)/usr/share/man/man8/iostat.8 diff --git a/iostat.tproj/Makefile.preamble b/iostat.tproj/Makefile.preamble deleted file mode 100644 index d52a820..0000000 --- a/iostat.tproj/Makefile.preamble +++ /dev/null @@ -1,116 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = -# Additional libs to link apps against ('profile' target) -OTHER_PROF_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. - -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# to make it install the man page -AFTER_INSTALL += install-man-page diff --git a/iostat.tproj/PB.project b/iostat.tproj/PB.project deleted file mode 100644 index 5cae2dc..0000000 --- a/iostat.tproj/PB.project +++ /dev/null @@ -1,43 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - FRAMEWORKS = (CoreFoundation.framework, IOKit.framework); - C_FILES = (); - H_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (iostat.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, iostat.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_DOCUMENTEXTENSIONS = (); - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = iostat; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/iostat.tproj/names.c b/iostat.tproj/names.c new file mode 100644 index 0000000..099ea61 --- /dev/null +++ b/iostat.tproj/names.c @@ -0,0 +1,268 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1986, 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if !defined(hp300) && !defined(tahoe) && !defined(vax) && \ + !defined(luna68k) && !defined(mips) +char *defdrives[] = { 0 }; +int +read_names() +{ + return 0; +} +#endif + +#if defined(hp300) || defined(luna68k) +#if defined(hp300) +#include +#else +#include +#endif + +char *defdrives[] = { "sd0", "sd1", "sd2", "rd0", "rd1", "rd2", 0 }; + +int +read_names() +{ + register char *p; + register u_long hp; + static char buf[BUFSIZ]; + struct hp_device hdev; + struct driver hdrv; + char name[10]; + + hp = namelist[X_HPDINIT].n_value; + if (hp == 0) { + (void)fprintf(stderr, + "disk init info not in namelist\n"); + return (0); + } + p = buf; + for (;; hp += sizeof hdev) { + (void)kvm_read(kd, hp, &hdev, sizeof hdev); + if (hdev.hp_driver == 0) + break; + if (hdev.hp_dk < 0 || hdev.hp_alive == 0 || + hdev.hp_cdriver == 0) + continue; + (void)kvm_read(kd, (u_long)hdev.hp_driver, &hdrv, sizeof hdrv); + (void)kvm_read(kd, (u_long)hdrv.d_name, name, sizeof name); + dr_name[hdev.hp_dk] = p; + p += sprintf(p, "%s%d", name, hdev.hp_unit) + 1; + } + return (1); +} +#endif /* hp300 || luna68k */ + +#ifdef tahoe +#include + +char *defdrives[] = { "dk0", "dk1", "dk2", 0 }; + +int +read_names() +{ + register char *p; + struct vba_device udev, *up; + struct vba_driver udrv; + char name[10]; + static char buf[BUFSIZ]; + + up = (struct vba_device *)namelist[X_VBDINIT].n_value; + if (up == 0) { + (void) fprintf(stderr, + "disk init info not in namelist\n"); + return (0); + } + p = buf; + for (;; up += sizeof udev) { + (void)kvm_read(kd, up, &udev, sizeof udev); + if (udev.ui_driver == 0) + break; + if (udev.ui_dk < 0 || udev.ui_alive == 0) + continue; + (void)kvm_read(kd, udev.ui_driver, &udrv, sizeof udrv); + (void)kvm_read(kd, udrv.ud_dname, name, sizeof name); + dr_name[udev.ui_dk] = p; + p += sprintf(p, "%s%d", name, udev.ui_unit); + } + return (1); +} +#endif /* tahoe */ + +#ifdef vax +#include +#include + +char *defdrives[] = { "hp0", "hp1", "hp2", 0 }; + +int +read_names() +{ + register char *p; + unsigned long mp, up; + struct mba_device mdev; + struct mba_driver mdrv; + struct uba_device udev; + struct uba_driver udrv; + char name[10]; + static char buf[BUFSIZ]; + + mp = namelist[X_MBDINIT].n_value; + up = namelist[X_UBDINIT].n_value; + if (mp == 0 && up == 0) { + (void)fprintf(stderr, + "disk init info not in namelist\n"); + return (0); + } + p = buf; + if (mp) + for (;; mp += sizeof mdev) { + (void)kvm_read(kd, mp, &mdev, sizeof mdev); + if (mdev.mi_driver == 0) + break; + if (mdev.mi_dk < 0 || mdev.mi_alive == 0) + continue; + (void)kvm_read(kd, mdev.mi_driver, &mdrv, sizeof mdrv); + (void)kvm_rea(kd, mdrv.md_dname, name, sizeof name); + dr_name[mdev.mi_dk] = p; + p += sprintf(p, "%s%d", name, mdev.mi_unit); + } + if (up) + for (;; up += sizeof udev) { + (void)kvm_read(kd, up, &udev, sizeof udev); + if (udev.ui_driver == 0) + break; + if (udev.ui_dk < 0 || udev.ui_alive == 0) + continue; + (void)kvm_read(kd, udev.ui_driver, &udrv, sizeof udrv); + (void)kvm_read(kd, udrv.ud_dname, name, sizeof name); + dr_name[udev.ui_dk] = p; + p += sprintf(p, "%s%d", name, udev.ui_unit); + } + return (1); +} +#endif /* vax */ + +#ifdef sun +#include + +int +read_names() +{ + static int once = 0; + struct mb_device mdev; + struct mb_driver mdrv; + short two_char; + char *cp = (char *) &two_char; + register struct mb_device *mp; + + mp = (struct mb_device *)namelist[X_MBDINIT].n_value; + if (mp == 0) { + (void)fprintf(stderr, + "disk init info not in namelist\n"); + return (0); + } + for (;; ++mp) { + (void)kvm_read(kd, mp++, &mdev, sizeof(mdev)); + if (mdev.md_driver == 0) + break; + if (mdev.md_dk < 0 || mdev.md_alive == 0) + continue; + (void)kvm_read(kd, mdev.md_driver, &mdrv, sizeof(mdrv)); + (void)kvm_read(kd, mdrv.mdr_dname, &two_char, sizeof(two_char)); + (void)sprintf(dr_name[mdev.md_dk], + "%c%c%d", cp[0], cp[1], mdev.md_unit); + } + return(1); +} +#endif /* sun */ + +#if defined(mips) +#include + +char *defdrives[] = { "rz0", "rz1", "rz2", "rz3", "rz4", "rz5", "rz6", 0 }; + +int +read_names() +{ + register char *p; + register u_long sp; + static char buf[BUFSIZ]; + struct scsi_device sdev; + struct driver hdrv; + char name[10]; + + sp = namelist[X_SCSI_DINIT].n_value; + if (sp == 0) { + (void)fprintf(stderr, "disk init info not in namelist\n"); + return (0); + } + p = buf; + for (;; sp += sizeof sdev) { + (void)kvm_read(kd, sp, &sdev, sizeof sdev); + if (sdev.sd_driver == 0) + break; + if (sdev.sd_dk < 0 || sdev.sd_alive == 0 || + sdev.sd_cdriver == 0) + continue; + (void)kvm_read(kd, (u_long)sdev.sd_driver, &hdrv, sizeof hdrv); + (void)kvm_read(kd, (u_long)hdrv.d_name, name, sizeof name); + dr_name[sdev.sd_dk] = p; + p += sprintf(p, "%s%d", name, sdev.sd_unit) + 1; + } + return (1); +} +#endif /* mips */ diff --git a/kgmon.tproj/Makefile b/kgmon.tproj/Makefile new file mode 100644 index 0000000..9436b34 --- /dev/null +++ b/kgmon.tproj/Makefile @@ -0,0 +1,48 @@ +# +# Generated by the NeXT Project Builder. +# +# NOTE: Do NOT change this file -- Project Builder maintains it. +# +# Put all of your customizations in files called Makefile.preamble +# and Makefile.postamble (both optional), and Makefile will include them. +# + +NAME = kgmon + +PROJECTVERSION = 2.8 +PROJECT_TYPE = Tool + +CFILES = kgmon.c + +OTHERSRCS = Makefile.preamble Makefile Makefile.postamble kgmon.8 + + +MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles +CODE_GEN_STYLE = DYNAMIC +MAKEFILE = tool.make +NEXTSTEP_INSTALLDIR = /usr/sbin +WINDOWS_INSTALLDIR = /usr/sbin +PDO_UNIX_INSTALLDIR = /usr/sbin +LIBS = +DEBUG_LIBS = $(LIBS) +PROF_LIBS = $(LIBS) + + + + +NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc +WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc +PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc +NEXTSTEP_JAVA_COMPILER = /usr/bin/javac +WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe +PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac + +include $(MAKEFILEDIR)/platform.make + +-include Makefile.preamble + +include $(MAKEFILEDIR)/$(MAKEFILE) + +-include Makefile.postamble + +-include Makefile.dependencies diff --git a/kgmon.tproj/kgmon.8 b/kgmon.tproj/kgmon.8 new file mode 100644 index 0000000..da55da4 --- /dev/null +++ b/kgmon.tproj/kgmon.8 @@ -0,0 +1,128 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)kgmon.8 8.1 (Berkeley) 6/6/93 +.\" +.Dd June 6, 1993 +.Dt KGMON 8 +.Os BSD 4.2 +.Sh NAME +.Nm kgmon +.Nd generate a dump of the operating system's profile buffers +.Sh SYNOPSIS +.Nm kgmon +.Op Fl bhpr +.Op Fl M core +.Op Fl N system +.Sh DESCRIPTION +.Nm Kgmon +is a tool used when profiling the operating system. +When no arguments are supplied, +.Nm kgmon +indicates the state of operating system profiling as running, +off, or not configured. +(see +.Xr config 8 ) +If the +.Fl p +flag is specified, +.Nm kgmon +extracts profile data from the operating system and produces a +.Pa gmon.out +file suitable for later analysis by +.Xr gprof 1 . +.Pp +The options are as follows: +.Bl -tag -width Ds +.\" ========== +.It Fl b +Resume the collection of profile data. +.\" ========== +.It Fl h +Stop the collection of profile data. +.\" ========== +.It Fl M +Extract values associated with the name list from the specified core +instead of the default ``/dev/kmem''. +.\" ========== +.It Fl N +Extract the name list from the specified system instead of the +default ``/vmunix''. +.\" ========== +.It Fl p +Dump the contents of the profile buffers into a +.Pa gmon.out +file. +.\" ========== +.It Fl r +Reset all the profile buffers. +If the +.Fl p +flag is also specified, the +.Pa gmon.out +file is generated before the buffers are reset. +.El +.Pp +If neither +.Fl b +nor +.Fl h +is specified, the state of profiling collection remains unchanged. +For example, if the +.Fl p +flag is specified and profile data is being collected, +profiling will be momentarily suspended, +the operating system profile buffers will be dumped, +and profiling will be immediately resumed. +.Sh FILES +.Bl -tag -width /dev/kmemx -compact +.It Pa /vmunix +the default system +.It Pa /dev/kmem +the default memory +.El +.Sh SEE ALSO +.Xr gprof 1 , +.Xr config 8 +.Sh DIAGNOSTICS +Users with only read permission on +.Pa /dev/kmem +cannot change the state +of profiling collection. +If profiling is in progress, +they can get a +.Pa gmon.out +file containing a warning that the data may be inconsistent. +.Sh HISTORY +The +.Nm kgmon +command appeared in +.Bx 4.2 . diff --git a/kgmon.tproj/kgmon.c b/kgmon.tproj/kgmon.c new file mode 100644 index 0000000..84999be --- /dev/null +++ b/kgmon.tproj/kgmon.c @@ -0,0 +1,591 @@ +/* + * Copyright (c) 1983, 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#ifndef __APPLE__ +#ifndef lint +static const char copyright[] = +"@(#) Copyright (c) 1983, 1992, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)kgmon.c 8.1 (Berkeley) 6/6/93"; +#endif +static const char rcsid[] = + "$FreeBSD: src/usr.sbin/kgmon/kgmon.c,v 1.14 2004/08/30 03:11:46 marcel Exp $"; +#endif /* not lint */ +#endif /* !__APPLE__ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct nlist nl[] = { +#define N_GMONPARAM 0 + { "__gmonparam" }, +#define N_PROFHZ 1 + { "_profhz" }, + { NULL }, +}; + +struct kvmvars { + kvm_t *kd; + struct gmonparam gpm; +}; + +int Bflag, bflag, hflag, kflag, rflag, pflag; +int debug = 0; +int getprof(struct kvmvars *); +int getprofhz(struct kvmvars *); +void kern_readonly(int); +int openfiles(char *, char *, struct kvmvars *); +void setprof(struct kvmvars *kvp, int state); +void dumpstate(struct kvmvars *kvp); +void reset(struct kvmvars *kvp); +static void usage(void); + +int +main(int argc, char **argv) +{ +#ifdef __APPLE__ + extern char *optarg; + extern int optind; +#endif + int ch, mode, disp, accessmode; + struct kvmvars kvmvars; + char *system, *kmemf; + + seteuid(getuid()); + kmemf = NULL; + system = NULL; +#ifdef __APPLE__ + while ((ch = getopt(argc, argv, "M:N:bhpr")) != -1) { +#else + while ((ch = getopt(argc, argv, "M:N:Bbhpr")) != -1) { +#endif + switch((char)ch) { + + case 'M': + kmemf = optarg; + kflag = 1; + break; + + case 'N': + system = optarg; + break; + +#ifndef __APPLE__ + case 'B': + Bflag = 1; + break; +#endif + + case 'b': + bflag = 1; + break; + + case 'h': + hflag = 1; + break; + + case 'p': + pflag = 1; + break; + + case 'r': + rflag = 1; + break; + + default: + usage(); + } + } + argc -= optind; + argv += optind; + +#define BACKWARD_COMPATIBILITY +#ifdef BACKWARD_COMPATIBILITY + if (*argv) { + system = *argv; + if (*++argv) { + kmemf = *argv; + ++kflag; + } + } +#endif + if (system == NULL) +#ifdef __APPLE__ + system = _PATH_UNIX; +#else + system = (char *)getbootfile(); +#endif + accessmode = openfiles(system, kmemf, &kvmvars); + mode = getprof(&kvmvars); + if (hflag) + disp = GMON_PROF_OFF; +#ifndef __APPLE__ + else if (Bflag) + disp = GMON_PROF_HIRES; +#endif + else if (bflag) + disp = GMON_PROF_ON; + else + disp = mode; + if (pflag) + dumpstate(&kvmvars); + if (rflag) + reset(&kvmvars); + if (accessmode == O_RDWR) + setprof(&kvmvars, disp); + (void)fprintf(stdout, "kgmon: kernel profiling is %s.\n", +#ifndef __APPLE__ + disp == GMON_PROF_OFF ? "off" : + disp == GMON_PROF_HIRES ? "running (high resolution)" : + disp == GMON_PROF_ON ? "running" : + disp == GMON_PROF_BUSY ? "busy" : + disp == GMON_PROF_ERROR ? "off (error)" : + "in an unknown state"); +#else + disp == GMON_PROF_OFF ? "off" : "running"); +#endif /* __APPLE__ */ + return (0); +} + +static void +usage() +{ +#ifdef __APPLE__ + fprintf(stderr, "usage: kgmon [-bhrp]\n"); +#else + fprintf(stderr, "usage: kgmon [-Bbhrp] [-M core] [-N system]\n"); +#endif + exit(1); +} + +/* + * Check that profiling is enabled and open any ncessary files. + */ +int +openfiles(system, kmemf, kvp) + char *system; + char *kmemf; + struct kvmvars *kvp; +{ + size_t size; + int mib[3], state, openmode; + char errbuf[_POSIX2_LINE_MAX]; + + if (!kflag) { + mib[0] = CTL_KERN; + mib[1] = KERN_PROF; + mib[2] = GPROF_STATE; + size = sizeof state; + if (sysctl(mib, 3, &state, &size, NULL, 0) < 0) + errx(20, "profiling not defined in kernel"); +#ifdef __APPLE__ + if (!(bflag || hflag || rflag || + (pflag && (state == GMON_PROF_ON)))) + return (O_RDONLY); +#else + if (!(Bflag || bflag || hflag || rflag || + (pflag && + (state == GMON_PROF_HIRES || state == GMON_PROF_ON)))) + return (O_RDONLY); +#endif + (void)seteuid(0); + if (sysctl(mib, 3, NULL, NULL, &state, size) >= 0) + return (O_RDWR); + (void)seteuid(getuid()); + kern_readonly(state); + return (O_RDONLY); + } +#ifdef __APPLE__ + openmode = (bflag || hflag || pflag || rflag) +#else + openmode = (Bflag || bflag || hflag || pflag || rflag) +#endif + ? O_RDWR : O_RDONLY; + kvp->kd = kvm_openfiles(system, kmemf, NULL, openmode, errbuf); + if (kvp->kd == NULL) { + if (openmode == O_RDWR) { + openmode = O_RDONLY; + kvp->kd = kvm_openfiles(system, kmemf, NULL, O_RDONLY, + errbuf); + } + if (kvp->kd == NULL) + errx(2, "kvm_openfiles: %s", errbuf); + kern_readonly(GMON_PROF_ON); + } + if (kvm_nlist(kvp->kd, nl) < 0) + errx(3, "%s: no namelist", system); + if (!nl[N_GMONPARAM].n_value) + errx(20, "profiling not defined in kernel"); + return (openmode); +} + +/* + * Suppress options that require a writable kernel. + */ +void +kern_readonly(mode) + int mode; +{ + + (void)fprintf(stderr, "kgmon: kernel read-only: "); +#ifdef __APPLE__ + if (pflag && mode == GMON_PROF_ON) +#else + if (pflag && (mode == GMON_PROF_HIRES || mode == GMON_PROF_ON)) +#endif + (void)fprintf(stderr, "data may be inconsistent\n"); + if (rflag) + (void)fprintf(stderr, "-r supressed\n"); +#ifndef __APPLE__ + if (Bflag) + (void)fprintf(stderr, "-B supressed\n"); +#endif + if (bflag) + (void)fprintf(stderr, "-b supressed\n"); + if (hflag) + (void)fprintf(stderr, "-h supressed\n"); +#ifdef __APPLE__ + rflag = bflag = hflag = 0; +#else + rflag = Bflag = bflag = hflag = 0; +#endif +} + +/* + * Get the state of kernel profiling. + */ +int +getprof(kvp) + struct kvmvars *kvp; +{ + size_t size; + int mib[3]; + + if (kflag) { + size = kvm_read(kvp->kd, nl[N_GMONPARAM].n_value, &kvp->gpm, + sizeof kvp->gpm); + } else { + mib[0] = CTL_KERN; + mib[1] = KERN_PROF; + mib[2] = GPROF_GMONPARAM; + size = sizeof kvp->gpm; + if (sysctl(mib, 3, &kvp->gpm, &size, NULL, 0) < 0) + size = 0; + } + +#ifdef __APPLE__ + if (size != sizeof kvp->gpm) + errx(4, "cannot get gmonparam: %s", + kflag ? kvm_geterr(kvp->kd) : strerror(errno)); +#else /* __APPLE__ */ + /* + * Accept certain undersized "structs" from old kernels. We need + * everything up to hashfraction, and want profrate and + * histcounter_type. Assume that the kernel doesn't put garbage + * in any padding that is returned instead of profrate and + * histcounter_type. This is a bad assumption for dead kernels, + * since kvm_read() will normally return garbage for bytes beyond + * the end of the actual kernel struct, if any. + */ + if (size < offsetof(struct gmonparam, hashfraction) + + sizeof(kvp->gpm.hashfraction) || size > sizeof(kvp->gpm)) + errx(4, "cannot get gmonparam: %s", + kflag ? kvm_geterr(kvp->kd) : strerror(errno)); + bzero((char *)&kvp->gpm + size, sizeof(kvp->gpm) - size); + if (kvp->gpm.profrate == 0) + kvp->gpm.profrate = getprofhz(kvp); +#ifdef __i386__ + if (kvp->gpm.histcounter_type == 0) { + /* + * This fixup only works for not-so-old i386 kernels. The + * magic 16 is the kernel FUNCTION_ALIGNMENT. 64-bit + * counters are signed; smaller counters are unsigned. + */ + kvp->gpm.histcounter_type = 16 / + (kvp->gpm.textsize / kvp->gpm.kcountsize) * CHAR_BIT; + if (kvp->gpm.histcounter_type == 64) + kvp->gpm.histcounter_type = -64; + } +#endif +#endif /* __APPLE__ */ + + return (kvp->gpm.state); +} + +/* + * Enable or disable kernel profiling according to the state variable. + */ +void +setprof(kvp, state) + struct kvmvars *kvp; + int state; +{ + struct gmonparam *p = (struct gmonparam *)nl[N_GMONPARAM].n_value; + size_t sz; + int mib[3], oldstate; + + sz = sizeof(state); + if (!kflag) { + mib[0] = CTL_KERN; + mib[1] = KERN_PROF; + mib[2] = GPROF_STATE; + if (sysctl(mib, 3, &oldstate, &sz, NULL, 0) < 0) + goto bad; + if (oldstate == state) + return; + (void)seteuid(0); + if (sysctl(mib, 3, NULL, NULL, &state, sz) >= 0) { + (void)seteuid(getuid()); + return; + } + (void)seteuid(getuid()); + } else if (kvm_write(kvp->kd, (u_long)&p->state, (void *)&state, sz) + == sz) + return; +bad: + warnx("warning: cannot turn profiling %s", + state == GMON_PROF_OFF ? "off" : "on"); +} + +/* + * Build the gmon.out file. + */ +void +dumpstate(kvp) + struct kvmvars *kvp; +{ + register FILE *fp; + struct rawarc rawarc; + struct tostruct *tos; + u_long frompc; + u_short *froms, *tickbuf; + size_t i; + int mib[3]; + struct gmonhdr h; + int fromindex, endfrom, toindex; + + setprof(kvp, GMON_PROF_OFF); + fp = fopen("gmon.out", "w"); + if (fp == 0) { + warn("gmon.out"); + return; + } + + /* + * Build the gmon header and write it to a file. + */ + bzero(&h, sizeof(h)); + h.lpc = kvp->gpm.lowpc; + h.hpc = kvp->gpm.highpc; + h.ncnt = kvp->gpm.kcountsize + sizeof(h); + h.version = GMONVERSION; +#ifdef __APPLE__ + h.profrate = getprofhz(kvp); +#else + h.profrate = kvp->gpm.profrate; + h.histcounter_type = kvp->gpm.histcounter_type; +#endif + fwrite((char *)&h, sizeof(h), 1, fp); + + /* + * Write out the tick buffer. + */ + mib[0] = CTL_KERN; + mib[1] = KERN_PROF; + if ((tickbuf = (u_short *)malloc(kvp->gpm.kcountsize)) == NULL) + errx(5, "cannot allocate kcount space"); + if (kflag) { + i = kvm_read(kvp->kd, (u_long)kvp->gpm.kcount, (void *)tickbuf, + kvp->gpm.kcountsize); + } else { + mib[2] = GPROF_COUNT; + i = kvp->gpm.kcountsize; + if (sysctl(mib, 3, tickbuf, &i, NULL, 0) < 0) + i = 0; + } + if (i != kvp->gpm.kcountsize) + errx(6, "read ticks: read %lu, got %ld: %s", + kvp->gpm.kcountsize, (long)i, + kflag ? kvm_geterr(kvp->kd) : strerror(errno)); + if ((fwrite(tickbuf, kvp->gpm.kcountsize, 1, fp)) != 1) + err(7, "writing tocks to gmon.out"); + free(tickbuf); + + /* + * Write out the arc info. + */ + if ((froms = (u_short *)malloc(kvp->gpm.fromssize)) == NULL) + errx(8, "cannot allocate froms space"); + if (kflag) { + i = kvm_read(kvp->kd, (u_long)kvp->gpm.froms, (void *)froms, + kvp->gpm.fromssize); + } else { + mib[2] = GPROF_FROMS; + i = kvp->gpm.fromssize; + if (sysctl(mib, 3, froms, &i, NULL, 0) < 0) + i = 0; + } + if (i != kvp->gpm.fromssize) + errx(9, "read froms: read %lu, got %ld: %s", + kvp->gpm.fromssize, (long)i, + kflag ? kvm_geterr(kvp->kd) : strerror(errno)); + if ((tos = (struct tostruct *)malloc(kvp->gpm.tossize)) == NULL) + errx(10, "cannot allocate tos space"); + if (kflag) { + i = kvm_read(kvp->kd, (u_long)kvp->gpm.tos, (void *)tos, + kvp->gpm.tossize); + } else { + mib[2] = GPROF_TOS; + i = kvp->gpm.tossize; + if (sysctl(mib, 3, tos, &i, NULL, 0) < 0) + i = 0; + } + if (i != kvp->gpm.tossize) + errx(11, "read tos: read %lu, got %ld: %s", + kvp->gpm.tossize, (long)i, + kflag ? kvm_geterr(kvp->kd) : strerror(errno)); + if (debug) + warnx("lowpc 0x%lx, textsize 0x%lx", + (unsigned long)kvp->gpm.lowpc, kvp->gpm.textsize); + endfrom = kvp->gpm.fromssize / sizeof(*froms); + for (fromindex = 0; fromindex < endfrom; ++fromindex) { + if (froms[fromindex] == 0) + continue; + frompc = (u_long)kvp->gpm.lowpc + + (fromindex * kvp->gpm.hashfraction * sizeof(*froms)); + for (toindex = froms[fromindex]; toindex != 0; + toindex = tos[toindex].link) { + if (debug) + warnx("[mcleanup] frompc 0x%lx selfpc 0x%lx " + "count %ld", frompc, tos[toindex].selfpc, + tos[toindex].count); + rawarc.raw_frompc = frompc; + rawarc.raw_selfpc = (u_long)tos[toindex].selfpc; + rawarc.raw_count = tos[toindex].count; + fwrite((char *)&rawarc, sizeof(rawarc), 1, fp); + } + } + fclose(fp); +} + +/* + * Get the profiling rate. + */ +int +getprofhz(kvp) + struct kvmvars *kvp; +{ + size_t size; + int mib[2], profrate; + struct clockinfo clockrate; + + if (kflag) { + profrate = 1; + if (kvm_read(kvp->kd, nl[N_PROFHZ].n_value, &profrate, + sizeof profrate) != sizeof profrate) + warnx("get clockrate: %s", kvm_geterr(kvp->kd)); + return (profrate); + } + mib[0] = CTL_KERN; + mib[1] = KERN_CLOCKRATE; + clockrate.profhz = 1; + size = sizeof clockrate; + if (sysctl(mib, 2, &clockrate, &size, NULL, 0) < 0) + warn("get clockrate: %s", strerror(errno)); + return (clockrate.profhz); +} + +/* + * Reset the kernel profiling date structures. + */ +void +reset(kvp) + struct kvmvars *kvp; +{ + char *zbuf; + u_long biggest; + int mib[3]; + + setprof(kvp, GMON_PROF_OFF); + + biggest = kvp->gpm.kcountsize; + if (kvp->gpm.fromssize > biggest) + biggest = kvp->gpm.fromssize; + if (kvp->gpm.tossize > biggest) + biggest = kvp->gpm.tossize; + if ((zbuf = (char *)malloc(biggest)) == NULL) + errx(12, "cannot allocate zbuf space"); + bzero(zbuf, biggest); + if (kflag) { + if (kvm_write(kvp->kd, (u_long)kvp->gpm.kcount, zbuf, + kvp->gpm.kcountsize) != kvp->gpm.kcountsize) + errx(13, "tickbuf zero: %s", kvm_geterr(kvp->kd)); + if (kvm_write(kvp->kd, (u_long)kvp->gpm.froms, zbuf, + kvp->gpm.fromssize) != kvp->gpm.fromssize) + errx(14, "froms zero: %s", kvm_geterr(kvp->kd)); + if (kvm_write(kvp->kd, (u_long)kvp->gpm.tos, zbuf, + kvp->gpm.tossize) != kvp->gpm.tossize) + errx(15, "tos zero: %s", kvm_geterr(kvp->kd)); + return; + } + (void)seteuid(0); + mib[0] = CTL_KERN; + mib[1] = KERN_PROF; + mib[2] = GPROF_COUNT; + if (sysctl(mib, 3, NULL, NULL, zbuf, kvp->gpm.kcountsize) < 0) + errx(13, "tickbuf zero: %s", strerror(errno)); + mib[2] = GPROF_FROMS; + if (sysctl(mib, 3, NULL, NULL, zbuf, kvp->gpm.fromssize) < 0) + errx(14, "froms zero: %s", strerror(errno)); + mib[2] = GPROF_TOS; + if (sysctl(mib, 3, NULL, NULL, zbuf, kvp->gpm.tossize) < 0) + errx(15, "tos zero: %s", strerror(errno)); + (void)seteuid(getuid()); + free(zbuf); +} diff --git a/kmodload.tproj/Makefile b/kmodload.tproj/Makefile new file mode 100644 index 0000000..947e08a --- /dev/null +++ b/kmodload.tproj/Makefile @@ -0,0 +1,51 @@ +# +# Generated by the Apple Project Builder. +# +# NOTE: Do NOT change this file -- Project Builder maintains it. +# +# Put all of your customizations in files called Makefile.preamble +# and Makefile.postamble (both optional), and Makefile will include them. +# + +NAME = kmodload + +PROJECTVERSION = 2.8 +PROJECT_TYPE = Tool + +HFILES = kld_patch.h vers_rsrc.h c++rem3.h + +CFILES = c++rem3.c kld_patch.c kmodload.c vers_rsrc.c + +OTHERSRCS = Makefile.preamble Makefile Makefile.postamble kmodload.8\ + kmodsyms.8 + + +MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles +CODE_GEN_STYLE = DYNAMIC +MAKEFILE = tool.make +NEXTSTEP_INSTALLDIR = /sbin +WINDOWS_INSTALLDIR = /Library/Executables +PDO_UNIX_INSTALLDIR = /bin +LIBS = -lkld +DEBUG_LIBS = $(LIBS) +PROF_LIBS = $(LIBS) + + + + +NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc +WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc +PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc +NEXTSTEP_JAVA_COMPILER = /usr/bin/javac +WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe +PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac + +include $(MAKEFILEDIR)/platform.make + +-include Makefile.preamble + +include $(MAKEFILEDIR)/$(MAKEFILE) + +-include Makefile.postamble + +-include Makefile.dependencies diff --git a/kmodload.tproj/c++rem3.c b/kmodload.tproj/c++rem3.c new file mode 100644 index 0000000..dfea388 --- /dev/null +++ b/kmodload.tproj/c++rem3.c @@ -0,0 +1,2209 @@ +// 45678901234567890123456789012345678901234567890123456789012345678901234567890 +/* + +Rules specification by +Stan Shebs of Apple Computer, Inc 2002 + +Parse and remangle implemented by +Godfrey van der Linden of Apple Computer, Inc 2002 + +Rules for demangling IOKit symbols + +In Darwin versions 1.0 through at least 5.2, IOKit is compiled using +GCC version 2. GCC 2's C++ symbol mangling algorithm ultimately +derives from the basic scheme described in the Annotated C++ Reference +Manual (ARM), section 7.2.1c, with a number of changes, mostly due to +the expansion of the language since the ARM was published in 1990. + +This description is not complete. It omits RTTI, thunks, and +templates, since they are not allowed in IOKit. The description also +mentions mangled name constructs that are not disallowed in IOKit, but +that as of Jan 2002, did actually appear in any symbol in the base +system. + +A mangled name basically consists of a function name followed +by two underscores, optionally followed by a signature computed +from the function's argument types. (Note that in Darwin, the +compiler adds an additional underscore to all C and C++ symbols. +The description assumes this has been removed.) + + ::= + | + + ::= [ ] + + ::= [ "_GLOBAL_" [ID] "__" ] "__" [ ] + + ::= * + | NULL + +Questions for Stan (@@@Stan@@@) +1> A valid implies a null function name. +2> I wonder if an is mutually exclusive with a perhaps something like :- + ::= [ "_GLOBAL_" ("I"|"D") "__" ] (( "__") | ) +3> Do constructors turn up as an opinfo or a NULL function name? + +The optional "_GLOBAL_"("I"|"D")"__" sequence indicates global constructors +and destructors, but in practice these do not appear with the mach-o Apple 2.95 + +A Null indicates a constructor or an operator. + +Since may include trailing underscores, the demangler +should scan forward until a non-underscore is seen, and then take the +last two as the separator between name and signature. + + may also include any number of leading underscores, so +the demangler needs to add those to and look for the +"__" following the name. + + ::= ("_._"|"_$_" ) ; destructor + | "__vt_" ; virtual table + | "_" ("."|"$") ; Variable + + ::= + | "Q" + | "K" ; ignored and illegal + + ::= + + ::= * + + ::= "type" + | "__op" + | "__" + | "a" + + ::= "aa" # && + | "aad" # &= + | "ad" # & + | "adv" # /= + | "aer" # ^= + | "als" # <<= + | "amd" # %= + | "ami" # -= + | "aml" # *= + | "aor" # |= + | "apl" # += + | "ars" # >>= + | "as" # = + | "cl" # () + | "cm" # , + | "cn" # ?: + | "co" # ~ + | "dl" # delete + | "dv" # / + | "eq" # == + | "er" # ^ + | "ge" # >= + | "gt" # > + | "le" # <= + | "ls" # << + | "lt" # < + | "md" # % + | "mi" # - + | "ml" # * + | "mm" # -- + | "mn" # ? + | "ne" # != + | "nt" # ! + | "nw" # new + | "oo" # || + | "or" # | + | "pl" # + + | "pp" # ++ + | "rf" # -> + | "rm" # ->* + | "rs" # >> + | "sz" # sizeof + | "vc" # [] + | "vd" # delete[] + | "vn" # new[] + +Questions for Stan (@@@Stan@@@) +1> What the hell is The "type" & "__op" stuff? + +IOKit has so far only been observed to use operations new ("nw") and +delete ("dl"). + +The signature is a concatenated list of elements, which are usually +argument types, but may include other sorts of things. + + ::= * + + ::= + | "S" + | "F" [ "_" ] + +Questions for Stan (@@@Stan@@@) +1> I think the 'B' phrase should probably read '| "B" '? +2> Ambiguous productions for signature + OSObject::func(struct timeval fred) => _func__8OSObject7timeval + signature could be parsed as + or + I believe the second one must be the valid production. + + ::= * + + :: + + ::= * + +The is the number of characters in . + +Argument types are a concatenated sequence of types. + + ::= # Empty + | + + ::= [ "n" ] + | "N" + | "T" + +The "N" repeats and "T" references to already-seen typescan only +appear if -fno-squangle (no squashed mangling), and in practice aren't +seen in IOKit symbols. + + ::= | * "_" + +Return types are just like any other sort of type. + + ::= + +Types consist of a variable number of declarators in front of a basic +type. + + ::= * + + ::= "P" ; pointer + | "p" ; pointer (but never occurs?) + | "R" ; reference (&) + | "A" ; array + | "T" + | "O" + | + +The "A" production can produce an ambigous output if it is followed by a counted class name or structure name. + +The "T" reference to a type does not appear in IOKit symbols, nor do +the "M" and "O" declarators. + + ::= ; function + | ; method + | * + + ::= "F" "_" + + ::= "M" + +A qualified name consists of a count of types, followed by all the +types concatenated together. For instance, Namespace::Class is +Q29Namespace5Class. For more than 9 types (which has not yet occurred +in IOKit), the multi-digit count is surrounded by underscores. + +Questions for Stan (@@@Stan@@@) +1> Can the types in a qualified name really be generic types or can the set be restricted to just counted class names? + + ::= | "_" * "_" + +Fundamental types are single letters representing standard built-in +types, optionally preceded by type qualifiers for properties like +signedness and constness. For instance, CUi is a const unsigned int. + + ::= "S" ; signed (chars only) + | "U" ; unsigned (any integral type) + | "J" ; __complex + | + + ::= + | "b" ; bool + | "c" ; char + | "d" ; double + | "f" ; float + | "i" ; int + | "l" ; long + | "r" ; long double + | "s" ; short + | "v" ; void + | "w" ; wchar_t + | "x" ; long long + | "G" ; ????? + | "e" ; ellipsis + +"G" does not appear in IOKit symbols in this context. + + ::= "C" ; const + | "V" ; volatile + | "u" ; restrict (C99) + | "G" ; struct/union/enum unused by gcc3 + +The restrict qualifier has not appeared in IOKit symbols. + +*/ +#if KERNEL + +#include +#include + +#include + +#include + +#include + +enum { false = 0, true = 1 }; + +#else /* !KERNEL */ + +#include + +#include +#include +#include + +#include + +#endif /* KERNEL */ + +#include "c++rem3.h" + +#define STRLEN(s) (sizeof(s)-1) +#define APPENDSTR(c, str) do { appendNStr(c, str, STRLEN(str)); } while (0) + +#define MAX_COMPOUND_TYPES 128 +#define MAX_ENTRIES 256 +#define MAX_SDICT_ENTRIES 256 +#define MAX_BDICT_ENTRIES 64 +#define MAX_RETURN_BUFFER 256 + +// Can't be bigger that 16 entries +typedef enum NameTypes { + kNTUndefined, kNTClass, kNTFunction, kNTFuncEnd, + kNTMethod, kNTBuiltIn, kNTDeclarator, kNTArray, + kNTKName, kNTSubstitute, kNTSubQualClass +} NameTypes; + +typedef struct TypeData { + short fStartEntry, fNumEntries; +} TypeData; + +typedef struct BaseTypeData { + const char *fFundTypeID; // May contain the type itself for kNTBuiltIt + unsigned int fLen:16; + unsigned int fType:4; // Must fit a NameType + unsigned int fVolatile:1; + unsigned int fConst:1; + unsigned int fSigned:1; + unsigned int fUnsigned:1; + unsigned int fPseudo:1; + unsigned int fQualified:1; +} BaseTypeData; + +typedef struct CheckPoint { + const char *fInChar; + unsigned char fNumI, fNumO, fNumT, fNumB, fNumS; +} CheckPoint; + +typedef struct ParseContext { + CheckPoint fP; + BaseTypeData fInEntries[MAX_ENTRIES]; // Input parsed elements + BaseTypeData fOutEntries[MAX_ENTRIES]; // Output parsed elements + TypeData fTypeList[MAX_COMPOUND_TYPES]; // Table of types + TypeData fSubDict[MAX_SDICT_ENTRIES]; + TypeData fBDict[MAX_BDICT_ENTRIES]; // B dictionary types + BaseTypeData *fCurBaseP; + const char *fInStr; + char *fOutStrEnd; + char *fOutChar; + int fInSize; + Rem3Return fRetCode; +} ParseContext; + +// +// The only forward declaration necessary +// +static Boolean parse_type(ParseContext *c); + +// Helper functions for walking through the string +static __inline__ char getNext(ParseContext *c) +{ + return *c->fP.fInChar++; +} + +static __inline__ CheckPoint *checkPoint(ParseContext *c) +{ + return &c->fP; +} + +static __inline__ void resetTo(ParseContext *c, CheckPoint *chk) +{ + c->fP = *chk; +} + +static __inline__ const char *inCharFromCheck(ParseContext *c, CheckPoint *chk) +{ + return chk->fInChar; +} + +static __inline__ void advance(ParseContext *c, int len) +{ + c->fP.fInChar += len; +} + +static __inline__ Boolean retard(ParseContext *c, int len) +{ + const char *cp = c->fP.fInChar - len; + if (cp < c->fInStr) + return false; + + c->fP.fInChar = cp; + return true; +} + +static __inline__ char peekAt(ParseContext *c, int index) +{ + return c->fP.fInChar[index]; +} + +static __inline__ char peekNext(ParseContext *c) +{ + return peekAt(c, 0); +} + +static __inline__ Boolean atEnd(ParseContext *c) +{ + return '\0' == peekNext(c); +} + +static __inline__ Boolean hasRemain(ParseContext *c, int len) +{ + return (c->fP.fInChar - c->fInStr + len <= c->fInSize); +} + +// +// Routines for allocating entries in the various +// +static __inline__ BaseTypeData *newIn(ParseContext *c) +{ + BaseTypeData *iP; + + if (c->fP.fNumI < MAX_ENTRIES) { + iP = &c->fInEntries[c->fP.fNumI++]; + bzero(iP, sizeof(*iP)); + c->fCurBaseP = iP; + return iP; + } + else { + c->fRetCode = kR3InternalNotRemangled; + return NULL; + } +} + +static __inline__ BaseTypeData *newOut(ParseContext *c) +{ + BaseTypeData *oP; + + if (c->fP.fNumO < MAX_ENTRIES) { + oP = &c->fOutEntries[c->fP.fNumO++]; + return oP; + } + else { + c->fRetCode = kR3InternalNotRemangled; + return NULL; + } +} + +static __inline__ TypeData * +newSub(ParseContext *c, int start, int num) +{ + TypeData *sP; + + if (c->fP.fNumS < MAX_SDICT_ENTRIES) { + sP = &c->fSubDict[c->fP.fNumS++]; + sP->fStartEntry = start; + sP->fNumEntries = num; + return sP; + } + else { + c->fRetCode = kR3InternalNotRemangled; + return NULL; + } +} + +static __inline__ TypeData * +newBDict(ParseContext *c, int start, int num) +{ + TypeData *bP; + + if (c->fP.fNumB < MAX_BDICT_ENTRIES) { + bP = &c->fBDict[c->fP.fNumB++]; + bP->fStartEntry = start; + bP->fNumEntries = num; + return bP; + } + else { + c->fRetCode = kR3InternalNotRemangled; + return NULL; + } +} + +static __inline__ TypeData * +newType(ParseContext *c, int start) +{ + TypeData *tP; + + if (c->fP.fNumT < MAX_COMPOUND_TYPES) { + tP = &c->fTypeList[c->fP.fNumT++]; + tP->fStartEntry = start; + return tP; + } + else + return NULL; +} + +static __inline__ TypeData * +dupType(ParseContext *c, TypeData *iTP, int offset) +{ + TypeData *tP = newType(c, iTP->fStartEntry + offset); + if (tP) + tP->fNumEntries = iTP->fNumEntries; + + return tP; +} + +// +// Identifier character recognition helpers, can be optimised +// +static __inline__ Boolean isValidFirstAlphabetic(char c) +{ + if ('a' <= c && c <= 'z') + return true; + else if ('A' <= c && c <= 'Z') + return true; + else + return false; +} + +static __inline__ Boolean isValidFirstChar(char c) +{ + if (isValidFirstAlphabetic(c)) + return true; + else if (c == '_') + return true; + else + return false; +} + +static __inline__ Boolean isValidChar(char c) +{ + if (isValidFirstChar(c)) + return true; + else if ('0' <= c && c <= '9') + return true; + else + return false; +} + +// +// Helper function for recognising characters and strings +// + +// Check the current input is the given character +static __inline__ Boolean isNext(ParseContext *c, char ch) +{ + if (peekNext(c) == ch) { + advance(c, 1); + return true; + } + else + return false; +} + +// Check the current input is ONE of the characters in str +static Boolean charNext(ParseContext *c, char *str) +{ + if (hasRemain(c, 1)) { + char ch = peekNext(c); + char next; + + while ( (next = *str++) ) + if (next == ch) { + advance(c, 1); + return true; + } + } + + return false; +} + +// Check the current input for 'str' +static Boolean strNext(ParseContext *c, const char *str) +{ + const char *cp = c->fP.fInChar; + + do { + if (!*str) { + c->fP.fInChar = (char *) cp; + return true; + } + else if (!*cp) + return false; + + } while (*cp++ == *str++); + + return false; +} + +// +// Qualifier re-encoding +// +static void +decodeQual(BaseTypeData *typeP, int *qualLenP, const char **qualP) +{ + const char *qual; + int qualLen; + + if (typeP->fConst && typeP->fVolatile) + { qual = "VK"; qualLen = 2; } + else if (typeP->fConst) + { qual = "K"; qualLen = 1; } + else if (typeP->fVolatile) + { qual = "V"; qualLen = 1; } + else + { qual = NULL; qualLen = 0; } + + *qualLenP = qualLen; + *qualP = qual; +} + + +// +// Output functions +// + +static void appendChar(ParseContext *c, char ch) +{ + char *outAddr = c->fOutChar++; + if (outAddr < c->fOutStrEnd) + *outAddr = ch; +} + +static void appendNStr(ParseContext *c, const char *str, int len) +{ + char *outAddr = c->fOutChar; + + c->fOutChar += len; + if (c->fOutChar < c->fOutStrEnd) + bcopy(str, outAddr, len); +} + +static __inline__ void appendStr(ParseContext *c, const char *str) +{ + appendNStr(c, str, strlen(str)); +} + +static void appendSub(ParseContext *c, int ls) +{ + appendChar(c, 'S'); + if (ls) { + if (--ls >= 36) { + int ms; + + ms = ls / 36; + appendChar(c, (ms < 10)? '0' + ms : 'A' + ms - 10); + ls -= (ms * 36); + } + appendChar(c, (ls < 10)? '0' + ls : 'A' + ls - 10); + } + appendChar(c, '_'); +} + +static Boolean compareTypes(ParseContext *c, int sub, int entry, int numEntries) +{ + TypeData *subP = &c->fSubDict[sub]; + BaseTypeData *bSP, *bIP; + int i; + + if (subP->fNumEntries != numEntries) + return false; + + bSP = &c->fInEntries[subP->fStartEntry]; + bIP = &c->fInEntries[entry]; + + for (i = 0; i < numEntries; i++, bSP++, bIP++) { + if (bSP->fType != bIP->fType) + return false; + + switch (bSP->fType) { + case kNTClass: + if (bSP->fLen != bIP->fLen) + return false; + else if (strncmp(bSP->fFundTypeID, bIP->fFundTypeID, bSP->fLen)) + return false; + break; + + case kNTArray: + case kNTBuiltIn: + case kNTDeclarator: + if (bSP->fFundTypeID != bIP->fFundTypeID) + return false; + break; + + case kNTMethod: + case kNTFunction: + case kNTUndefined: + case kNTKName: + break; // OK so far + + default: + return false; // Fatal errors + } + } + + return true; +} + +static int searchDict(ParseContext *c, int entry, int numE) +{ + int sub, numSubs = c->fP.fNumS; + + // don't try to substitute the last builtin + if (numE == 1 && kNTBuiltIn == c->fInEntries[entry].fType) + return -1; + + for (sub = 0; sub < numSubs; sub++) + if (compareTypes(c, sub, entry, numE)) + return sub; + + return -1; +} + +static int searchDictClass(ParseContext *c, const char *qname, int len) +{ + TypeData *subP; + int sub, numSubs = c->fP.fNumS; + + for (sub = 0, subP = c->fSubDict; sub < numSubs; sub++, subP++) { + BaseTypeData *iP = &c->fInEntries[subP->fStartEntry]; + + if (kNTClass != iP->fType || iP->fLen != len) + continue; + if (!strncmp(iP->fFundTypeID, qname, len)) + return sub; + } + + return -1; +} + +static Boolean +appendQualifiedClass(ParseContext *c, int entry) +{ + BaseTypeData *iP, *oP, *sP, *endSP; + const char *cp, *typeID; + int sub, subEntry, prefixLen; + int q_count; + + int decodeStart = c->fP.fNumI; + + // Scan through the incom + iP = &c->fInEntries[entry]; + endSP = &c->fInEntries[MAX_ENTRIES]; + sP = &c->fInEntries[decodeStart]; + + prefixLen = iP->fLen; + typeID = cp = iP->fFundTypeID; + for (q_count = 0; sP < endSP && (cp-typeID) < prefixLen; q_count++, sP++) { + int count; + + count = strtoul(cp, (char **) &cp, 10); + cp += count; + + sP->fType = kNTClass; + sP->fFundTypeID = typeID; + sP->fLen = cp - typeID; + } + if (sP >= endSP) + return false; + + // Search backwards until I find the first substitution + sub = -1; + for (subEntry = q_count, sP--; subEntry > 0; subEntry--, sP--) { + sub = searchDictClass(c, sP->fFundTypeID, sP->fLen); + if (-1 != sub) + break; + } + + // Now drop the symbol into the output buffer + oP = newOut(c); + if (!oP) + return false; + + if (sub < 0) + *oP = *iP; // No sub copy original + else { + // Substitution found + prefixLen = sP->fLen; // Length of substitution + + oP->fType = kNTSubstitute; // Assume complete substitution + oP->fLen = sub; + oP->fFundTypeID = 0; + + // We have a partial substitution so tag on the unmatched bit + if (prefixLen != iP->fLen) { + oP->fType = kNTSubQualClass; // Re-characterise as 2 part sub + + oP = newOut(c); + if (!oP) + return false; + + *oP = *iP; // Duplicate the original + oP->fType = kNTSubQualClass; + oP->fFundTypeID += prefixLen; // Skip leading substituted text + oP->fLen -= prefixLen; + } + } + + // Finally insert the qualified class names into the dictionary + for (subEntry++, sP++; subEntry < q_count; subEntry++, decodeStart++) { + c->fInEntries[decodeStart] = *sP++; + if (!newSub(c, decodeStart, 1)) + return false; + } + c->fP.fNumI = decodeStart; + + if (!newSub(c, entry, 1)) + return false; + + return true; +} + +static int +appendType(ParseContext *c, int type) +{ + BaseTypeData *iP, *oP; + TypeData *tP; + int i, sub; + int entry, numE, lastEntry; + Boolean found; + + if (type >= c->fP.fNumT) + return -1; + + tP = &c->fTypeList[type++]; + entry = tP->fStartEntry; + numE = tP->fNumEntries; + lastEntry = entry + numE; + iP = 0; + for (i = 0, found = false, sub = -1; i < numE; i++) { + iP = &c->fInEntries[entry + i]; + switch (iP->fType) { + + // Function & Builtin can't be compressed alone + case kNTFunction: + case kNTBuiltIn: + i++; // Copy the current entry + found = true; + break; + + case kNTClass: + case kNTMethod: + sub = searchDict(c, entry + i, numE - i); + if (sub < 0 && !iP->fQualified) + i++; + found = true; + break; + + case kNTDeclarator: + case kNTArray: + sub = searchDict(c, entry + i, numE - i); + found = (sub >= 0); + break; + + // Internal error's should never occur + case kNTKName: + case kNTSubstitute: + case kNTSubQualClass: + case kNTUndefined: + default: + return -1; + } + if (found) + break; + } + + if (!found) + return -1; // Internal error: no terminal symbol? + + // Copy the already input buffer to the output + oP = &c->fOutEntries[c->fP.fNumO]; + if (i) { + if (c->fP.fNumO + i >= MAX_ENTRIES) + return -1; + + bcopy(&c->fInEntries[entry], oP, i * sizeof(*oP)); + c->fP.fNumO += i; + oP += i; + } + + if (sub >= 0) { + // We found a substitution + oP->fType = kNTSubstitute; + oP->fLen = sub; + c->fP.fNumO++; // Increment output for the substitution + + // Walk over types that have been substituted + while (type < c->fP.fNumT + && c->fTypeList[type].fStartEntry < lastEntry) + type++; + } + else switch (iP->fType) + { + case kNTMethod: + type = appendType(c, type); // Class Name + if (type < 0) + return type; + type = appendType(c, type); // Pointer to function + if (type < 0) + return type; + break; + + case kNTFunction: + type = appendType(c, type); // Return type + if (type < 0) + return type; + + // process the argument list + do { + tP = &c->fTypeList[type]; + if (tP->fStartEntry < lastEntry) { + type = appendType(c, type); + if (type < 0) + return type; + } + else + break; + } while (type < c->fP.fNumT); + oP = newOut(c); + if (!oP) + return -1; + oP->fType = kNTFuncEnd; + break; + + case kNTBuiltIn: + i--; // Do not store the buildit in the dictionary + break; + + case kNTClass: // Nothing more to do + if (!iP->fQualified) + break; + else if (appendQualifiedClass(c, entry + i)) + break; + else + return -1; + } + + // No further substititions to be had update the dictionary + for (i += entry; --i >= entry; ) { + if (!newSub(c, i, lastEntry - i)) + return -1; + } + + return type; +} + +static Boolean appendArgumentList(ParseContext *c) +{ + int i, num; + + c->fRetCode = kR3InternalNotRemangled; + // Setup the output entry array + num = c->fP.fNumT; + for (i = 0; i < num; ) { + i = appendType(c, i); + if (i < 0) + return false; + } + + // First pass output uncompressed types + for (i = 0, num = c->fP.fNumO; i < num; i++) { + BaseTypeData *bP; + + bP = &c->fOutEntries[i]; + + if (bP->fPseudo) + continue; // Pseudo entry do not output; + + switch (bP->fType) { + + case kNTSubstitute: appendSub(c, bP->fLen); break; + + case kNTSubQualClass: + appendChar(c, 'N'); + appendSub(c, bP->fLen); + i++; bP = &c->fOutEntries[i]; + appendNStr(c, bP->fFundTypeID, bP->fLen); + appendChar(c, 'E'); + break; + + case kNTClass: + if (bP->fQualified) { + appendChar(c, 'N'); + appendNStr(c, bP->fFundTypeID, bP->fLen); + appendChar(c, 'E'); + } + else + appendNStr(c, bP->fFundTypeID, bP->fLen); + break; + + case kNTArray: { + char numbuf[16]; // Bigger than MAX_LONG + 3 + int len; + len = snprintf(numbuf, sizeof(numbuf), + "A%lu_", (unsigned long) bP->fFundTypeID); + appendNStr(c, numbuf, len); + break; + } + + case kNTBuiltIn: + case kNTDeclarator: appendChar(c, (int) bP->fFundTypeID); break; + case kNTMethod: appendChar(c, 'M'); break; + case kNTFunction: appendChar(c, 'F'); break; + case kNTFuncEnd: appendChar(c, 'E'); break; + + case kNTUndefined: + case kNTKName: + default: + return false; // Fatal errors + } + } + + // Successful remangle + c->fRetCode = kR3Remangled; + return true; +} + +// +// Parse routines +// + +// ::= * +static Boolean parse_count(ParseContext *c, int *countP) +{ + int count = 0; + char ch; + + ch = peekNext(c); + if (ch < '1' || ch > '9') + return false; + + count = strtol(c->fP.fInChar, (char **) &c->fP.fInChar, 10); + if (countP) + *countP = count; + + return true; +} + + +// "n" can cause the following type to be ambiguous as +// n23_Pc... can be +// "n" ... +// | "n" '_' ... +// However as the class '_Pc' is probably going to be unlikely a quick +// check to see if the next field is a valid type would probably clear +// up the abiguity for the majority of cases. +// +// ::= | * "_" +static Boolean parse_index(ParseContext *c, int *indexP) +{ + CheckPoint chk = *checkPoint(c); + char ch0, ch1; + int index; + + ch0 = peekAt(c, 0); + ch1 = peekAt(c, 1); + + if ( !('0' <= ch0 && ch0 <= '9') ) + goto abandonParse; + if ('0' <= ch1 && ch1 <= '9') { + if (!parse_count(c, &index)) + goto abandonParse; + if (isNext(c, '_')) { + // @@@ gvdl: Ambiguity check one day + if (indexP) + *indexP = index; + return true; + } + else + resetTo(c, &chk); // Must be the one digit case + } + + // One digit case + advance(c, 1); + index = ch0 - '0'; + + if (indexP) + *indexP = index; + return true; + +abandonParse: + return false; +} + + +// ::= "C" ; const +// | "V" ; volatile +// | "u" ; restrict (C99) unsupported +// | "G" ; struct/union/enum ; unused in gcc3 +static Boolean parse_qualifiers(ParseContext *c) +{ + BaseTypeData *bP = c->fCurBaseP; + + for (;;) { + if (isNext(c, 'C')) + bP->fConst = true; // "C" ; const + else if (isNext(c, 'V')) + bP->fVolatile = true; // "V" ; volatile + else if (isNext(c, 'u')) + return false; // "u" ; restrict (C99) + else if (isNext(c, 'G')) + continue; // "G" ; struct/union/enum ; unused + else + break; + } + + return true; +} + +// Assumes we have an open fInEntry in fCurBaseP +static Boolean duplicateEntries(ParseContext *c, int start, int numE) +{ + BaseTypeData *bIP = &c->fInEntries[start]; // First duplicate entry + BaseTypeData *bP = c->fCurBaseP; + int i; + + // Duplicating a method + if (kNTMethod == bIP->fType) { + bP--; // Strip leading 'P' declarator + c->fP.fNumI--; + } + + numE--; + + // do we have room available for duplication + if (c->fP.fNumI + numE >= MAX_ENTRIES) + return false; + + // Copy the parse entries over + bcopy(bIP, bP, (numE + 1) * sizeof(*bP)); + + // Now we have to duplicate the types for the new entry + for (i = 0; i < c->fP.fNumT; i++) { + TypeData *tP = &c->fTypeList[i]; + if (tP->fStartEntry < start) + continue; + else if (tP->fStartEntry <= start + numE) + dupType(c, tP, bP - bIP); + else + break; + } + + c->fP.fNumI += numE; + bP += numE; + c->fCurBaseP = bP; + + return true; +} + +// Must have a valid c->fCurBaseP pointer on entry +// ::= ; plain class name +// | "Q" ; qualified name +// | "B" ; compressed name +// | "K" ; ignored and illegal +// ::= + +// ::= | "_" * "_" +// ::= +// ::= * +static Boolean +parse_class_name(ParseContext *c) +{ + BaseTypeData *bP = c->fCurBaseP; + const char *typeId = c->fP.fInChar; + char ch; + int count; + + if (parse_count(c, &count)) { + + // ::= + if (!hasRemain(c, count)) + goto abandonParse; + + bP->fType = kNTClass; + advance(c, count); + + bP->fFundTypeID = typeId; + bP->fLen = c->fP.fInChar - typeId; + } + else { + switch (peekNext(c)) { + + case 'Q': { + int i, q_count; + + advance(c, 1); + + // | "Q" ; qualified name + // ::= + + // ::= | "_" * "_" + if ('_' == (ch = getNext(c))) { + advance(c, 1); + if (!parse_count(c, &q_count) || !isNext(c, '_')) + goto abandonParse; + } + else if ('1' <= ch && ch <= '9') + q_count = ch - '0'; + + if (!q_count) + goto abandonParse; + + typeId = c->fP.fInChar; + bP->fType = kNTClass; + bP->fQualified = true; + i = 0; + for (i = 0; i < q_count; i++) { + if (parse_count(c, &count)) + advance(c, count); + else + goto abandonParse; + } + bP->fLen = c->fP.fInChar - typeId; + bP->fFundTypeID = typeId; + break; + } + + case 'B': + // | "B" + advance(c, 1); + + if (!parse_index(c, &count) || count >= c->fP.fNumB) + goto abandonParse; + + if (!duplicateEntries(c, c->fBDict[count].fStartEntry, + c->fBDict[count].fNumEntries)) + goto abandonParse; + return true; + + case 'K': default: + goto abandonParse; + } + } + + if (newBDict(c, bP - c->fInEntries, 1)) + return true; + +abandonParse: + return false; +} + +// ::= +// | "b" ; bool +// | "c" ; char +// | "d" ; double +// | "e" ; ellipsis +// | "f" ; float +// | "i" ; int +// | "l" ; long +// | "r" ; long double +// | "s" ; short +// | "v" ; void +// | "w" ; wchar_t +// | "x" ; long long +// | "G" ; ??? +static Boolean parse_fund_type_id(ParseContext *c) +{ + BaseTypeData *bP = c->fCurBaseP; + + if (!parse_class_name(c)) { + // Use the TypeID pointer as a 4 character buffer + char ch = peekNext(c); + + if (bP->fSigned && 'c' != ch) + goto abandonParse; // illegal only chars can be signed + + switch (ch) { + + case 'b': case 'd': case 'f': case 'v': case 'w': // No map types + break; + + case 'c': // character + if (bP->fSigned) ch = 'a'; + else if (bP->fUnsigned) ch = 'h'; + break; + case 'e': // ellipsis + ch = 'z'; + break; + case 'i': // int + if (bP->fUnsigned) ch = 'j'; + break; + case 'l': // long + if (bP->fUnsigned) ch = 'm'; + break; + case 'r': // long double + ch = 'e'; + break; + case 's': // short + if (bP->fUnsigned) ch = 't'; + break; + case 'x': // long long + if (bP->fUnsigned) ch = 'y'; + break; + + case 'G': // Don't understand "G" + default: + goto abandonParse; + } + + advance(c, 1); // Consume the input character + bP->fFundTypeID = (void *) (int) ch; + bP->fLen = 0; + bP->fType = kNTBuiltIn; + } + + return true; + +abandonParse: + return false; +} + +// ::= [ "n" ] +// | "N" ; Not implemented +// | "T" ; Not implemented +static Boolean parse_arg_type(ParseContext *c) +{ + // Don't bother to check point as parse_argument_types does it for us + + TypeData *typeP; + int repeat = 0; + + typeP = &c->fTypeList[c->fP.fNumT]; // Cache type for later repeat + if (!parse_type(c)) + return false; + + // Now check for a repeat count on this type + if (isNext(c, 'n')) { + if (!parse_index(c, &repeat)) + return false; + + do { + c->fCurBaseP = newIn(c); // Duplicate requires a fresh type + if (!c->fCurBaseP) + return false; + if (!duplicateEntries(c, typeP->fStartEntry, typeP->fNumEntries)) + return false; + } while (--repeat); + } + + return true; +} + +// ::= # Empty +// | + +static Boolean parse_argument_types(ParseContext *c) +{ + if (atEnd(c)) + return true; + + if (!parse_arg_type(c)) + goto abandonParse; + + while (!atEnd(c) && parse_arg_type(c)) + ; + + return true; + + // Not a counted class name so reset to checkPoint +abandonParse: + return false; +} + +// leaf function so the copy aside buffer isn't on the primary +// recursion stack. +static Boolean +rotateFunction(ParseContext *c, int argStart, int retStart) +{ + char returnTypeBuffer[MAX_RETURN_BUFFER]; + int numArg, numRet; + int lenArg, lenRet; + char *sArgP, *sRetP; + int i; + + TypeData *argTP = &c->fTypeList[argStart]; + TypeData *retTP = &c->fTypeList[retStart]; + + // Rotate around the entries first + numArg = retTP->fStartEntry - argTP->fStartEntry; + numRet = retTP->fNumEntries; + lenArg = numArg * sizeof(BaseTypeData); + lenRet = numRet * sizeof(BaseTypeData); + + // Copy the return type into a buffer + if (lenRet > sizeof(returnTypeBuffer)) + return false; + + sArgP = (char *) (&c->fInEntries[argTP->fStartEntry]); + sRetP = (char *) (&c->fInEntries[retTP->fStartEntry]); + + bcopy(sRetP, returnTypeBuffer, lenRet); + bcopy(sArgP, sArgP + lenRet, lenArg); + bcopy(returnTypeBuffer, sArgP, lenRet); + + // Retarget the argument and return types for the new entry positions + lenArg = numArg; + lenRet = numRet; + numArg = retStart - argStart; + numRet = c->fP.fNumT - retStart; + for (i = 0; i < numArg; i++) + c->fTypeList[argStart+i].fStartEntry += lenRet; + for (i = 0; i < numRet; i++) + c->fTypeList[retStart+i].fStartEntry -= lenArg; + + // Rotate the BDictionary + for (i = 0; i < c->fP.fNumB; i++) { + TypeData *bDP = &c->fBDict[i]; + int start = bDP->fStartEntry; + + if (start >= argTP->fStartEntry) + bDP->fStartEntry = start + lenRet; + else if (start >= retTP->fStartEntry) + bDP->fStartEntry = start - lenArg; + } + + // Finally rotate the retargeted type structures. + lenArg = numArg * sizeof(TypeData); + lenRet = numRet * sizeof(TypeData); + + sArgP = (char *) (&c->fTypeList[argStart]); + sRetP = (char *) (&c->fTypeList[retStart]); + + bcopy(sRetP, returnTypeBuffer, lenRet); + bcopy(sArgP, sArgP + lenRet, lenArg); + bcopy(returnTypeBuffer, sArgP, lenRet); + + return true; +} + +// ::= "F" "_" +static Boolean parse_function_type(ParseContext *c, Boolean forMethod) +{ + TypeData *bDictP = 0; + BaseTypeData *bP = c->fCurBaseP; + + int argTypeStart, retTypeStart; + + if (!forMethod) { + bDictP = newBDict(c, c->fP.fNumI-1, 0); + if (!bDictP) + goto abandonParse; + } + + if (!isNext(c, 'F')) + goto abandonParse; + + bP->fType = kNTFunction; + + // Note that the argument types will advance the Entry list + argTypeStart = c->fP.fNumT; + if (!parse_argument_types(c)) + goto abandonParse; + + if (!isNext(c, '_')) + goto abandonParse; + + // Parse the return type + retTypeStart = c->fP.fNumT; + if (!parse_type(c)) + goto abandonParse; + + // gcc3 puts the return code just after the 'F' declaration + // as this impacts the order of the compression I need to rotate + // the return type and the argument types. + if (!rotateFunction(c, argTypeStart, retTypeStart)) + goto abandonParse; + + if (!forMethod) + bDictP->fNumEntries = c->fP.fNumI - bDictP->fStartEntry; + + return true; + +abandonParse: + return false; +} + +// To convert 2.95 method to a 3.0 method I need to prune the +// first argument of the function type out of the parse tree. +static Boolean cleanMethodFunction(ParseContext *c, int type) +{ + TypeData *typeP, *startTP, *endTP; + BaseTypeData *bP; + int i, thisStart, thisEnd, thisLen, funcRemain; + + // Get pointer for the return value's type. + startTP = &c->fTypeList[type+1]; + endTP = &c->fTypeList[c->fP.fNumT]; + + // Now look for the first type that starts after the return type + thisEnd = startTP->fStartEntry + startTP->fNumEntries; + for (startTP++; startTP < endTP; startTP++) + if (startTP->fStartEntry >= thisEnd) + break; + + if (startTP >= endTP) { + c->fRetCode = kR3InternalNotRemangled; + return false; // Internal error: should never happen + } + + // We now have a pointer to the 1st argument in the input list + // we will need to excise the entries from the input list and don't forget + // to remove the associated types from the type list. + + thisLen = startTP->fNumEntries; + thisStart = startTP->fStartEntry; + thisEnd = thisStart + thisLen; + funcRemain = c->fP.fNumI - thisEnd; + bP = &c->fInEntries[thisStart]; + + // If we have no arguments then replace the pointer with a void + if (!funcRemain) { + c->fP.fNumI -= (thisLen - 1); + + bP->fFundTypeID = (void *) (int) 'v'; // Void arg list + bP->fLen = 0; + bP->fType = kNTBuiltIn; + + // Update the type entry for the void argument list + startTP->fNumEntries = 1; + return true; + } + + // Move the argument list down to replace the 'this' pointer + bcopy(bP + thisLen, bP, funcRemain * sizeof(*bP)); + c->fP.fNumI -= thisLen; + + // And remove the 'this' pointers type + + // First walk over all of the types that have to be removed + for (typeP = startTP + 1; typeP < endTP; typeP++) + if (typeP->fStartEntry >= thisEnd) + break; + + if (typeP >= endTP) { + c->fRetCode = kR3InternalNotRemangled; + return false; // Internal error Can't be a void argument list. + } + + bcopy(typeP, startTP, (char *) endTP - (char *) typeP); + + c->fP.fNumT -= typeP - startTP; + endTP = &c->fTypeList[c->fP.fNumT]; + for (typeP = startTP ; typeP < endTP; typeP++) + typeP->fStartEntry -= thisLen; + + // Finally we can retarget the BDictionary lists + for (i = 0; i < c->fP.fNumB; i++) { + TypeData *bDP = &c->fBDict[i]; + int start = bDP->fStartEntry; + + if (start < thisStart) + continue; + if (start >= thisEnd) + break; + + bDP->fStartEntry = start - thisLen; + } + + return true; +} + +// ::= "M" +// +// Note this is a very bad function. Gcc3 doesn't doesn't use pointer that +// is immediately before this entry. We will have to delete the 'P' declarator +// that is before the method declaration. +// We will also have to prune the first type in the argument list as Gcc3 +// doesn't register the 'this' pointer within the function list. +static Boolean parse_method_type(ParseContext *c) +{ + TypeData *bDictP; + TypeData *typeP; + BaseTypeData *bP; + + bDictP = newBDict(c, c->fP.fNumI-2, 0); + if (!bDictP) + goto abandonParse; + + // Replace 'P' declarator + c->fP.fNumI--; + bP = c->fCurBaseP - 1; + + if (!isNext(c, 'M')) + goto abandonParse; + + if (bP->fFundTypeID != (void *) (int) 'P') + goto abandonParse; + + // Replace the previous 'Pointer' declarator + bP->fType = kNTMethod; + bP->fFundTypeID = NULL; + bP->fLen = 0; + + // Grab the method's 'this' type specification + typeP = newType(c, c->fP.fNumI); + if (!newIn(c) || !typeP) + goto abandonParse; + + if (!parse_class_name(c)) + goto abandonParse; + typeP->fNumEntries = c->fP.fNumI - typeP->fStartEntry; + + // Grab the specifier + typeP = newType(c, c->fP.fNumI); + if (!newIn(c) || !typeP) + goto abandonParse; + + if (!parse_function_type(c, /* forMethod */ true)) + goto abandonParse; + + if (!cleanMethodFunction(c, typeP - c->fTypeList)) + goto abandonParse; + typeP->fNumEntries = c->fP.fNumI - typeP->fStartEntry; + + // Finally update the dictionary with the M & 'this' + bDictP->fNumEntries = c->fP.fNumI - bDictP->fStartEntry; + + return true; + +abandonParse: + return false; +} + +static Boolean emitQualifiers(ParseContext *c) +{ + BaseTypeData *bP = c->fCurBaseP; + + if (bP->fVolatile || bP->fConst) { + Boolean isConst, isVolatile, isSigned, isUnsigned; + + isVolatile = bP->fVolatile; + isConst = bP->fConst; + isSigned = bP->fSigned; + isUnsigned = bP->fUnsigned; + bP->fConst = bP->fVolatile = bP->fSigned = bP->fUnsigned = 0; + + if (isVolatile) { + bP->fType = kNTDeclarator; + bP->fFundTypeID = (void *) (int) 'V'; + bP->fLen = 0; + bP = newIn(c); + if (!bP) + return false; + } + if (isConst) { + bP->fType = kNTDeclarator; + bP->fFundTypeID = (void *) (int) 'K'; + bP->fLen = 0; + bP = newIn(c); + if (!bP) + return false; + } + bP->fSigned = isSigned; + bP->fUnsigned = isUnsigned; + } + + return true; +} + + +// ::= ; function +// | ; method +// | * +// ::= "S" ; signed (chars only) +// | "U" ; unsigned (any integral type) +// | "J" ; __complex +// | +static Boolean parse_base_type(ParseContext *c) +{ + if ('F' == peekNext(c)) { + if (!parse_function_type(c, /* forMethod */ false)) + goto abandonParse; + } + else if ('M' == peekNext(c)) { + if (!parse_method_type(c)) + goto abandonParse; + } + else { + // | * + BaseTypeData *bP = c->fCurBaseP; + for (;;) { + if (isNext(c, 'S')) + // ::= "S" ; signed (chars only) + { bP->fSigned = true; continue; } + else if (isNext(c, 'U')) + // | "U" ; unsigned (any integral type) + { bP->fUnsigned = true; continue; } + else if (isNext(c, 'C')) + // | + // ::= "C" ; const + { bP->fConst = true; continue; } + else if (isNext(c, 'V')) + // | "V" ; volatile + { bP->fVolatile = true; continue; } + else if (charNext(c, "Ju")) + goto abandonParse; // Don't support these qualifiers + // | "J" ; __complex + // | "u" ; restrict (C99) + else + break; + } + + if (!emitQualifiers(c)) + goto abandonParse; + + if (!parse_fund_type_id(c)) + goto abandonParse; + } + return true; + +abandonParse: + return false; +} + +// Use the top SDict as a stack of declarators. +// parses * +// ::= "P" ; pointer +// | "p" ; pointer (but never occurs?) +// | "R" ; reference (&) +// | "A" ; array +// | "T" +// | "O" +// | +// +// As a side-effect the fCurBaseP is setup with any qualifiers on exit +static Boolean parse_declarators(ParseContext *c) +{ + int count; + BaseTypeData *dP; + + // Note we MUST go through the for loop at least once + for (count = 0; ; count++) { + const char *curDecl; + char ch; + + if (!newIn(c)) + goto abandonParse; + + // ::= production + if (!parse_qualifiers(c) || !emitQualifiers(c)) + goto abandonParse; + + dP = c->fCurBaseP; // Find the current base type pointer + + curDecl = c->fP.fInChar; + + switch (peekNext(c)) { + + case 'P': case 'p': case 'R': + // ::= "P" ; pointer + // | "p" ; pointer (but never occurs?) + // | "R" ; reference (&) + + dP->fType = kNTDeclarator; + advance(c, 1); + + ch = *curDecl; + if ('p' == ch) ch = 'P'; + dP->fFundTypeID = (void *) (int) ch; + dP->fLen = 0; + continue; // Go around again + + case 'A': + // | "A" ; array + dP->fType = kNTArray; + + advance(c, 1); curDecl++; + curDecl = (void *) + strtoul(curDecl, (char **) &c->fP.fInChar, 10); + if (!curDecl) + goto abandonParse; + dP->fFundTypeID = curDecl; + dP->fLen = 0; + continue; // Go around again + + case 'T': case 'O': + // | "T" Unsupported + // | "O" Unsupported + goto abandonParse; + + default: + break; + } + + break; + } + + dP->fLen = 0; + return true; + +abandonParse: + return false; +} + +// ::= * +static Boolean parse_type(ParseContext *c) +{ + CheckPoint chk = *checkPoint(c); + TypeData *typeP = newType(c, c->fP.fNumI); + if (!typeP) + goto abandonParse; + + // As a side-effect the fCurBaseP is setup with any qualifiers on exit + if (!parse_declarators(c)) + goto abandonParse; + + // Merge the last qualifiers into the base type + if (!parse_base_type(c) || kNTUndefined == c->fCurBaseP->fType) + goto abandonParse; + + typeP->fNumEntries = c->fP.fNumI - typeP->fStartEntry; + return true; + +abandonParse: + resetTo(c, &chk); + return false; +} + +// ::= * +// No need to check point as an invalid function name is fatal +// Consumes trailing "__". +static Boolean +parse_function_name(ParseContext *c) +{ + char ch; + + while ( (ch = peekNext(c)) ) + { + advance(c, 1); + if ('_' == ch && '_' == peekNext(c)) { + do { + advance(c, 1); + } while ('_' == peekNext(c)); + return true; + } + } + + return false; +} + +// ::= "type" +// | "__op" +// | "__" ; Implies null function name +// | "a" +// ::= "aa" # && ==> "aa" +// | "aad" # &= ==> "aN" +// | "ad" # & ==> "ad" +// | "adv" # /= ==> "dV" +// | "aer" # ^= ==> "eO" +// | "als" # <<= ==> "lS" +// | "amd" # %= ==> "rM" +// | "ami" # -= ==> "mI" +// | "aml" # *= ==> "mL +// | "aor" # |= ==> "oR +// | "apl" # += ==> "pL +// | "ars" # >>= ==> "rS +// | "as" # = ==> "aS +// | "cl" # () ==> "cl +// | "cm" # , ==> "cm +// | "cn" # ?: ==> "qu +// | "co" # ~ ==> "co +// | "dl" # delete ==> "dl +// | "dv" # / ==> "dv +// | "eq" # == ==> "eq +// | "er" # ^ ==> "eo +// | "ge" # >= ==> "ge +// | "gt" # > ==> "gt +// | "le" # <= ==> "le +// | "ls" # << ==> "ls +// | "lt" # < ==> "lt +// | "md" # % ==> "rm +// | "mi" # - ==> "mi +// | "ml" # * ==> "ml +// | "mm" # -- ==> "mm +// | "mn" # "???????????????? +// | "mx" # >? ==> "???????????????? +// | "ne" # != ==> "ne +// | "nt" # ! ==> "nt +// | "nw" # new ==> "nw +// | "oo" # || ==> "oo" +// | "or" # | ==> "or +// | "pl" # + ==> "pl +// | "pp" # ++ ==> "pp +// | "rf" # -> ==> "pt +// | "rm" # ->* ==> "pm +// | "rs" # >> ==> "rs +// | "sz" # sizeof ==> "sz +// | "vc" # [] ==> "ix +// | "vd" # delete[] ==> "da +// | "vn" # new[] ==> "na +static struct opMap { + const char *op295, *op3; +} opMapTable[] = { + {"aad", "aN" }, {"adv", "dV" }, {"aer", "eO" }, {"als", "lS" }, + {"amd", "rM" }, {"ami", "mI" }, {"aml", "mL" }, {"aor", "oR" }, + {"apl", "pL" }, {"ars", "rS" }, {"aa", "aa" }, {"ad", "ad" }, + {"as", "aS" }, {"cl", "cl" }, {"cm", "cm" }, {"cn", "qu" }, + {"co", "co" }, {"dl", "dl" }, {"dv", "dv" }, {"eq", "eq" }, + {"er", "eo" }, {"ge", "ge" }, {"gt", "gt" }, {"le", "le" }, + {"ls", "ls" }, {"lt", "lt" }, {"md", "rm" }, {"mi", "mi" }, + {"ml", "ml" }, {"mm", "mm" }, {"mn", NULL }, {"mx", NULL }, + {"ne", "ne" }, {"nt", "nt" }, {"nw", "nw" }, {"oo", "oo" }, + {"or", "or" }, {"pl", "pl" }, {"pp", "pp" }, {"rf", "pt" }, + {"rm", "pm" }, {"rs", "rs" }, {"sz", "sz" }, {"vc", "ix" }, + {"vd", "da" }, {"vn", "na" }, +}; + +static Boolean parse_opinfo(ParseContext *c, const char **opInfoP) +{ + CheckPoint chk = *checkPoint(c); + const char *op; + char ch; + int i; + + if ('a' == (ch = peekNext(c))) { + goto abandonParse; + } + else if (strNext(c, "type")) { + goto abandonParse; + } + else if (retard(c, 4) && strNext(c, "____op")) { + // @@@ gvdl: check this out it may change + // ::= "__op" + goto abandonParse; + } + + // Failed till now so reset and see if we have an operator + resetTo(c, &chk); + + // quick check to see if we may have an operator + if (!strrchr("acdeglmnoprsv", peekNext(c))) + goto abandonParse; + + op = NULL; + for (i = 0; i < sizeof(opMapTable)/sizeof(opMapTable[0]); i++) { + if (strNext(c, opMapTable[i].op295)) { + op = opMapTable[i].op3; + break; + } + } + if (!op) + goto abandonParse; + + if (!strNext(c, "__")) // Trailing underbars + goto abandonParse; + + if (opInfoP) + *opInfoP = op; + return true; + +abandonParse: + return false; +} + +// ::= * +// ::= +// | "K" +// | "S" +// | "F" [ "_" ] +// ::= +// Treat the prefix's s_element as a full type +static Boolean +parse_signature(ParseContext *c, + const char *func, int funcLen, const char *op) +{ + BaseTypeData *bP; + TypeData *tP; + + Boolean isFunction = false; + + if (isNext(c, 'F')) { + // | "F" [ "_" ] + + char numbuf[16]; // Bigger than MAX_INT + 4 + int len; + isFunction = true; + if (!funcLen) + goto abandonParse; + + len = snprintf(numbuf, sizeof(numbuf), "__Z%d", funcLen); + + appendNStr(c, numbuf, len); + appendNStr(c, func, funcLen); + } + else if (isNext(c, 'S')) { + // | "S" ; Ignored + goto abandonParse; + } + else { + const char *qual; + int qualLen; + + // See if we can find a qualified class reference + tP = newType(c, c->fP.fNumI); + if (!tP) + goto abandonParse; + + bP = newIn(c); + if (!bP) + goto abandonParse; + + // Parse any qualifiers, store results in *fCurBaseP + bP->fPseudo = true; + if (!parse_qualifiers(c)) + goto abandonParse; + + if (!parse_class_name(c)) + goto abandonParse; + + bP = c->fCurBaseP; // class name may have redifined current + tP->fNumEntries = c->fP.fNumI - tP->fStartEntry; + + APPENDSTR(c, "__ZN"); + decodeQual(bP, &qualLen, &qual); + if (qualLen) + appendNStr(c, qual, qualLen); + appendNStr(c, bP->fFundTypeID, bP->fLen); + + if (funcLen) { + char numbuf[16]; // Bigger than MAX_INT + 1 + int len; + + len = snprintf(numbuf, sizeof(numbuf), "%d", funcLen); + appendNStr(c, numbuf, len); + appendNStr(c, func, funcLen); + } + else if (op) + appendStr(c, op); + else { + // No function & no op means constructor choose one of C1 & C2 + APPENDSTR(c, "C2"); + } + appendChar(c, 'E'); + } + + if (atEnd(c)) { + appendChar(c, 'v'); // void argument list + c->fRetCode = kR3Remangled; + return true; + } + + c->fCurBaseP = NULL; + if (!parse_argument_types(c)) + goto abandonParse; + + if (isFunction) { + if (isNext(c, '_')) { + // && !parse_type(c) @@@ gvdl: Unsupported return + c->fRetCode = kR3InternalNotRemangled; + goto abandonParse; + } + } + + if (!atEnd(c)) + goto abandonParse; + + // OK we have a complete and successful parse now output the + // argument list + return appendArgumentList(c); + +abandonParse: + return false; +} + +// ::= [ ] +// ::= [ "_GLOBAL_" [ID] "__" ] "__" [ ] +static Boolean parse_mangled_name(ParseContext *c) +{ + CheckPoint chk; + CheckPoint dubBarChk; + const char *func; + + // parse + if (strNext(c, "_GLOBAL_")) { // Is this GLOBAL static constructor? + // gvdl: can't deal with _GLOBAL_ + c->fRetCode = kR3InternalNotRemangled; + return false; // Can't deal with these + } + + func = c->fP.fInChar; + for (chk = *checkPoint(c); ; resetTo(c, &dubBarChk)) { + int funcLen; + const char *op = NULL; + + if (!parse_function_name(c)) + goto abandonParse; + dubBarChk = *checkPoint(c); + + // Note that the opInfo may be earlier than the curDoubleBar + // in which case the function name may need to be shrunk later on. + (void) parse_opinfo(c, &op); + + if (atEnd(c)) + goto abandonParse; // No Signature? + + funcLen = inCharFromCheck(c, &dubBarChk) - func - 2; + if (parse_signature(c, func, funcLen, op)) + return true; + + if (kR3NotRemangled != c->fRetCode) + goto abandonParse; + + // If no error then try again maybe another '__' exists + } + +abandonParse: + resetTo(c, &chk); + return false; +} + +// ::= ("_._" | "_$_" ) ; destructor +// | "__vt_" ; virtual table +// | "_" ("."|"$") +static Boolean parse_gnu_special(ParseContext *c) +{ + CheckPoint chk = *checkPoint(c); + BaseTypeData *bP = newIn(c); + + if (!bP) + return false; + + // What do the intel desctructors look like + if (strNext(c, "_._") || strNext(c, "_$_") ) // Is this a destructor + { + if (!parse_class_name(c) || !atEnd(c)) + goto abandonParse; + APPENDSTR(c, "__ZN"); + appendNStr(c, bP->fFundTypeID, bP->fLen); + APPENDSTR(c, "D2Ev"); + c->fRetCode = kR3Remangled; + return true; + } + else if (strNext(c, "__vt_")) // Is it's a vtable? + { + if (!parse_class_name(c) || !atEnd(c)) + goto abandonParse; + + APPENDSTR(c, "__ZTV"); + if (kNTClass != bP->fType) + goto abandonParse; + else if (bP->fQualified) { + appendChar(c, 'N'); + appendNStr(c, bP->fFundTypeID, bP->fLen); + appendChar(c, 'E'); + } + else + appendNStr(c, bP->fFundTypeID, bP->fLen); + + c->fRetCode = kR3Remangled; + return true; + } + else if (isNext(c, '_')) // Maybe it's a variable + { + const char *varname; + int varlen, len; + char numbuf[16]; // Bigger than MAX_INT + 1 + + if (!parse_class_name(c)) // Loads up the bP structure + goto abandonParse; + + if (!isNext(c, '.') && !isNext(c, '$')) + goto abandonParse; + + // Parse the variable name now. + varname = c->fP.fInChar; + if (atEnd(c) || !isValidFirstChar(getNext(c))) + goto abandonParse; + + while ( !atEnd(c) ) + if (!isValidChar(getNext(c))) + goto abandonParse; + + varlen = c->fP.fInChar - varname; + len = snprintf(numbuf, sizeof(numbuf), "%d", varlen); + + APPENDSTR(c, "__ZN"); + appendNStr(c, bP->fFundTypeID, bP->fLen); + + appendNStr(c, numbuf, len); + appendNStr(c, varname, varlen); + appendChar(c, 'E'); + + c->fRetCode = kR3Remangled; + return true; + } + + // Oh well it is none of those so give up but reset scan +abandonParse: + resetTo(c, &chk); + return false; +} + +// ::= +// | +static Boolean parse_special_or_name(ParseContext *c) +{ + Boolean res; + + + res = (parse_gnu_special(c) || parse_mangled_name(c)); + appendChar(c, '\0'); + + return res; +} + +Rem3Return rem3_remangle_name(char *gcc3, int *gcc3size, const char *gcc295) +{ + ParseContext *c; + Rem3Return result; + int size; + + if (!gcc295 || !gcc3 || !gcc3size) + return kR3BadArgument; + + size = strlen(gcc295); + if (size < 2) + return kR3NotRemangled; // Not a valid C++ symbol + else if (*gcc295 != '_') + return kR3NotRemangled; // no leading '_', not valid + + c = (ParseContext *) malloc(sizeof(*c)); + if (!c) + return kR3InternalNotRemangled; + bzero(c, sizeof(*c)); + + c->fInSize = size; + c->fInStr = gcc295 + 1; // Strip leading '_' + c->fP.fInChar = c->fInStr; + + c->fOutStrEnd = gcc3 + *gcc3size; + c->fOutChar = gcc3; + + c->fRetCode = kR3NotRemangled; + (void) parse_special_or_name(c); + + result = c->fRetCode; + if (kR3Remangled == result) { + if (c->fOutChar > c->fOutStrEnd) + result = kR3BufferTooSmallRemangled; + *gcc3size = c->fOutChar - gcc3 - 1; // Remove nul from len + } + + free(c); + + return result; +} diff --git a/kmodload.tproj/c++rem3.h b/kmodload.tproj/c++rem3.h new file mode 100644 index 0000000..9f37019 --- /dev/null +++ b/kmodload.tproj/c++rem3.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2002 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/* + * History: + * 2002-02-26 gvdl Initial implementation of the gcc 2.95 -> gcc 3.x + * symbol remangler. + */ + +#include + +typedef enum Rem3Return { + kR3NotRemangled = 0, // Wasn't a 2.95 C++ symbol but otherwise OK + kR3Remangled, // Was sucessfully remangled from 2.95 -> 3.x + kR3InternalNotRemangled, // Symbol is too big to be parsed + kR3BufferTooSmallRemangled, // Is 2.95 symbol but insufficent output space + kR3BadArgument, // One of the pointers are NULL +} Rem3Return; + +__BEGIN_DECLS + +extern Rem3Return +rem3_remangle_name(char *gcc3, int *gcc3size, const char *gcc295); + +__END_DECLS diff --git a/kmodload.tproj/kld_patch.c b/kmodload.tproj/kld_patch.c new file mode 100644 index 0000000..3016199 --- /dev/null +++ b/kmodload.tproj/kld_patch.c @@ -0,0 +1,2478 @@ +/* + * Copyright (c) 2001 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/* + * History: + * 2001-05-30 gvdl Initial implementation of the vtable patcher. + */ +// 45678901234567890123456789012345678901234567890123456789012345678901234567890 + +#include +#include +#include +#include + +#if KERNEL + +#include +#include + +#include + +#include + +#include +#include + +#include "mach_loader.h" + +#include + +enum { false = 0, true = 1 }; + +#define vm_page_size page_size + +extern load_return_t fatfile_getarch( + void * vp, // normally a (struct vnode *) + vm_offset_t data_ptr, + struct fat_arch * archret); + +__private_extern__ char *strstr(const char *in, const char *str); + +#else /* !KERNEL */ + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include + +#define PAGE_SIZE vm_page_size +#define PAGE_MASK (PAGE_SIZE - 1) + +#endif /* KERNEL */ + +#include "kld_patch.h" +#include "c++rem3.h" + +#if 0 +#define DIE() do { for (;;) ; } while(0) + +#if KERNEL +# define LOG_DELAY() /* IODelay(200000) */ +# define DEBUG_LOG(x) do { IOLog x; LOG_DELAY(); } while(0) +#else +# define LOG_DELAY() +# define DEBUG_LOG(x) do { printf x; } while(0) +#endif + +#else + +#define DIE() +#define LOG_DELAY() +#define DEBUG_LOG(x) + +#endif + +// OSObject symbol prefixes and suffixes +#define kCPPSymbolPrefix "_Z" +#define kVTablePrefix "_" kCPPSymbolPrefix "TV" +#define kOSObjPrefix "_" kCPPSymbolPrefix "N" +#define kReservedNamePrefix "_RESERVED" +#define k29SuperClassSuffix "superClass" +#define k31SuperClassSuffix "10superClassE" +#define kGMetaSuffix "10gMetaClassE" +#define kLinkEditSegName SEG_LINKEDIT + +// GCC 2.95 drops 2 leading constants in the vtable +#define kVTablePreambleLen 2 + +// Last address that I'm willing to try find vm in +#define kTopAddr ((unsigned char *) (1024 * 1024 * 1024)) + +// Size in bytes that Data Ref object's get increased in size +// Must be a power of 2 +#define kDataCapacityIncrement 128 + +// My usual set of helper macros. I personally find these macros +// easier to read in the code rather than an explicit error condition +// check. If I don't make it easy then I may get lazy ond not check +// everything. I'm sorry if you find this code harder to read. + +// break_if will evaluate the expression and if it is true +// then it will print the msg, which is enclosed in parens +// and then break. Usually used in loops are do { } while (0) +#define break_if(expr, msg) \ + if (expr) { \ + errprintf msg; \ + break; \ + } + +// return_if will evaluate expr and if true it will log the +// msg, which is enclosed in parens, and then it will return +// with the return code of ret. +#define return_if(expr, ret, msg) do { \ + if (expr) { \ + errprintf msg; \ + return ret; \ + } \ +} while (0) + +#ifndef MIN +#define MIN(a,b) (((a)<(b))?(a):(b)) +#endif /* MIN */ +#ifndef MAX +#define MAX(a,b) (((a)>(b))?(a):(b)) +#endif /* MAX */ + +typedef struct Data { + unsigned long fLength, fCapacity; + unsigned char *fData; +} Data, *DataRef; + +struct sectionRecord { + const struct section *fSection; + DataRef fRelocCache; +}; + +enum patchState { + kSymbolIdentical, + kSymbolLocal, + kSymbolPadUpdate, + kSymbolSuperUpdate, + kSymbolMismatch +}; + +struct patchRecord { + struct nlist *fSymbol; + enum patchState fType; +}; + +struct relocRecord { + void *fValue; + const struct nlist *fSymbol; + struct relocation_info *fRInfo; + void *reserved; +}; + +struct metaClassRecord { + char *fSuperName; + struct fileRecord *fFile; + const struct nlist *fVTableSym; + struct patchRecord *fPatchedVTable; + char fClassName[1]; +}; + +struct fileRecord { + size_t fMapSize, fMachOSize; + unsigned char *fMap, *fMachO, *fPadEnd; + DataRef fClassList; + DataRef fSectData; + DataRef fNewSymbols, fNewStringBlocks; + DataRef fSym2Strings; + struct symtab_command *fSymtab; + struct sectionRecord *fSections; + struct segment_command *fLinkEditSeg; + const char **fSymbToStringTable; + char *fStringBase; + struct nlist *fSymbolBase; + const struct nlist *fLocalSyms; + unsigned int fNSects; + int fNLocal; + Boolean fIsKernel, fNoKernelExecutable, fIsKmem; + Boolean fImageDirty, fSymbolsDirty; + Boolean fRemangled, fFoundOSObject; + const char fPath[1]; +}; + +static DataRef sFilesTable; +static struct fileRecord *sKernelFile; + +static DataRef sMergedFiles; +static DataRef sMergeMetaClasses; +static Boolean sMergedKernel; + +static void errprintf(const char *fmt, ...) +{ + extern void kld_error_vprintf(const char *format, va_list ap); + + va_list ap; + + va_start(ap, fmt); + kld_error_vprintf(fmt, ap); + va_end(ap); + +DIE(); +} + +static __inline__ unsigned long DataGetLength(DataRef data) +{ + return data->fLength; +} + +static __inline__ unsigned char *DataGetPtr(DataRef data) +{ + return data->fData; +} + +static __inline__ unsigned char *DataGetEndPtr(DataRef data) +{ + return data->fData + data->fLength; +} + +static __inline__ unsigned long DataRemaining(DataRef data) +{ + return data->fCapacity - data->fLength; +} + +static __inline__ Boolean DataContainsAddr(DataRef data, void *vAddr) +{ + vm_offset_t offset = (vm_address_t) vAddr; + + if (!data) + return false; + + offset = (vm_address_t) vAddr - (vm_address_t) data->fData; + return (offset < data->fLength); +} + +static Boolean DataEnsureCapacity(DataRef data, unsigned long capacity) +{ + // Don't bother to ever shrink a data object. + if (capacity > data->fCapacity) { + unsigned char *newData; + + capacity += kDataCapacityIncrement - 1; + capacity &= ~(kDataCapacityIncrement - 1); + newData = (unsigned char *) realloc(data->fData, capacity); + if (!newData) + return false; + + bzero(newData + data->fCapacity, capacity - data->fCapacity); + data->fData = newData; + data->fCapacity = capacity; + } + + return true; +} + +static __inline__ Boolean DataSetLength(DataRef data, unsigned long length) +{ + if (DataEnsureCapacity(data, length)) { + data->fLength = length; + return true; + } + else + return false; +} + +static __inline__ Boolean DataAddLength(DataRef data, unsigned long length) +{ + return DataSetLength(data, data->fLength + length); +} + +static __inline__ Boolean +DataAppendBytes(DataRef data, const void *addr, unsigned int len) +{ + unsigned long size = DataGetLength(data); + + if (!DataAddLength(data, len)) + return false; + + bcopy(addr, DataGetPtr(data) + size, len); + return true; +} + +static __inline__ Boolean DataAppendData(DataRef dst, DataRef src) +{ + return DataAppendBytes(dst, DataGetPtr(src), DataGetLength(src)); +} + +static DataRef DataCreate(unsigned long capacity) +{ + DataRef data = (DataRef) malloc(sizeof(Data)); + + if (data) { + if (!capacity) + data->fCapacity = kDataCapacityIncrement; + else { + data->fCapacity = capacity + kDataCapacityIncrement - 1; + data->fCapacity &= ~(kDataCapacityIncrement - 1); + } + + data->fData = (unsigned char *) malloc(data->fCapacity); + if (!data->fData) { + free(data); + return NULL; + } + + bzero(data->fData, data->fCapacity); + data->fLength = 0; + } + return data; +} + +static void DataRelease(DataRef data) +{ + if (data) { + if (data->fData) + free(data->fData); + data->fData = 0; + free(data); + } +} + +static __inline__ const char * +symNameByIndex(const struct fileRecord *file, unsigned int symInd) +{ + return file->fSymbToStringTable[symInd]; +} + +static __inline__ const char * +symbolname(const struct fileRecord *file, const struct nlist *sym) +{ + unsigned int index; + + index = sym - file->fSymbolBase; + if (index < file->fSymtab->nsyms) + return symNameByIndex(file, index); + + if (-1 == sym->n_un.n_strx) + return (const char *) sym->n_value; + + // If the preceding tests fail then we have a getNewSymbol patch and + // the file it refers to has already been patched as the n_strx is set + // to -1 temporarily while we are still processing a file. + // Once we have finished with a file then we repair the 'strx' offset + // to be valid for the repaired file's string table. + return file->fStringBase + sym->n_un.n_strx; +} + +static struct fileRecord * +getFile(const char *path) +{ + if (sFilesTable) { + int i, nfiles; + struct fileRecord **files; + + // Check to see if we have already merged this file + nfiles = DataGetLength(sFilesTable) / sizeof(struct fileRecord *); + files = (struct fileRecord **) DataGetPtr(sFilesTable); + for (i = 0; i < nfiles; i++) { + if (!strcmp(path, files[i]->fPath)) + return files[i]; + } + } + + return NULL; +} + +static struct fileRecord * +addFile(struct fileRecord *file, const char *path) +{ + struct fileRecord *newFile; + + if (!sFilesTable) { + sFilesTable = DataCreate(0); + if (!sFilesTable) + return NULL; + } + + newFile = (struct fileRecord *) + malloc(sizeof(struct fileRecord) + strlen(path)); + if (!newFile) + return NULL; + + if (!DataAppendBytes(sFilesTable, &newFile, sizeof(newFile))) { + free(newFile); + return NULL; + } + + bcopy(file, newFile, sizeof(struct fileRecord) - 1); + strcpy((char *) newFile->fPath, path); + + return newFile; +} + +// @@@ gvdl: need to clean up the sMergeMetaClasses +// @@@ gvdl: I had better fix the object file up again +static void unmapFile(struct fileRecord *file) +{ + if (file->fSectData) { + struct sectionRecord *section; + unsigned int i, nsect; + + nsect = file->fNSects; + section = file->fSections; + for (i = 0; i < nsect; i++, section++) { + if (section->fRelocCache) { + DataRelease(section->fRelocCache); + section->fRelocCache = 0; + } + } + + DataRelease(file->fSectData); + file->fSectData = 0; + file->fSections = 0; + file->fNSects = 0; + } + + if (file->fSym2Strings) { + DataRelease(file->fSym2Strings); + file->fSym2Strings = 0; + } + + if (file->fMap) { +#if KERNEL + if (file->fIsKmem) + kmem_free(kernel_map, (vm_address_t) file->fMap, file->fMapSize); +#else /* !KERNEL */ + if (file->fPadEnd) { + vm_address_t padVM; + vm_size_t padSize; + + padVM = round_page((vm_address_t) file->fMap + file->fMapSize); + padSize = (vm_size_t) ((vm_address_t) file->fPadEnd - padVM); + (void) vm_deallocate(mach_task_self(), padVM, padSize); + file->fPadEnd = 0; + } + + (void) munmap((caddr_t) file->fMap, file->fMapSize); +#endif /* !KERNEL */ + file->fMap = 0; + } +} + +static void removeFile(struct fileRecord *file) +{ + if (file->fClassList) { + DataRelease(file->fClassList); + file->fClassList = 0; + } + + unmapFile(file); + + free(file); +} + +#if !KERNEL +static Boolean +mapObjectFile(struct fileRecord *file, const char *pathName) +{ + Boolean result = false; + static unsigned char *sFileMapBaseAddr = 0; + + int fd = 0; + + if (!sFileMapBaseAddr) { + kern_return_t ret; + vm_address_t probeAddr; + + // If we don't already have a base addr find any random chunk + // of 32 meg of VM and to use the 16 meg boundrary as a base. + ret = vm_allocate(mach_task_self(), &probeAddr, + 32 * 1024 * 1024, VM_FLAGS_ANYWHERE); + return_if(KERN_SUCCESS != ret, false, + ("Unable to allocate base memory %s\n", mach_error_string(ret))); + (void) vm_deallocate(mach_task_self(), probeAddr, 32 * 1024 * 1024); + + // Now round to the next 16 Meg boundrary + probeAddr = (probeAddr + (16 * 1024 * 1024 - 1)) + & ~(16 * 1024 * 1024 - 1); + sFileMapBaseAddr = (unsigned char *) probeAddr; + } + + fd = open(pathName, O_RDONLY, 0); + return_if(fd == -1, false, ("Can't open %s for reading - %s\n", + pathName, strerror(errno))); + + do { + kern_return_t ret; + struct stat sb; + int retaddr = -1; + + break_if(fstat(fd, &sb) == -1, + ("Can't stat %s - %s\n", file->fPath, strerror(errno))); + + file->fMapSize = sb.st_size; + file->fMap = sFileMapBaseAddr; + ret = KERN_SUCCESS; + while (file->fMap < kTopAddr) { + vm_address_t padVM; + vm_address_t padVMEnd; + vm_size_t padSize; + + padVM = round_page((vm_address_t) file->fMap + file->fMapSize); + retaddr = (int) mmap(file->fMap, file->fMapSize, + PROT_READ|PROT_WRITE, + MAP_FIXED|MAP_FILE|MAP_PRIVATE, + fd, 0); + if (-1 == retaddr) { + break_if(ENOMEM != errno, + ("mmap failed %d - %s\n", errno, strerror(errno))); + + file->fMap = (unsigned char *) padVM; + continue; + } + + + // Round up padVM to the next page after the file and assign at + // least another fMapSize more room rounded up to the next page + // boundary. + padVMEnd = round_page(padVM + file->fMapSize); + padSize = padVMEnd - padVM; + ret = vm_allocate( + mach_task_self(), &padVM, padSize, VM_FLAGS_FIXED); + if (KERN_SUCCESS == ret) { + file->fPadEnd = (unsigned char *) padVMEnd; + break; + } + else { + munmap(file->fMap, file->fMapSize); + break_if(KERN_INVALID_ADDRESS != ret, + ("Unable to allocate pad vm for %s - %s\n", + pathName, mach_error_string(ret))); + + file->fMap = (unsigned char *) padVMEnd; + continue; // try again wherever the vm system wants + } + } + + if (-1 == retaddr || KERN_SUCCESS != ret) + break; + + break_if(file->fMap >= kTopAddr, + ("Unable to map memory %s\n", file->fPath)); + + sFileMapBaseAddr = file->fPadEnd; + result = true; + } while(0); + + close(fd); + return result; +} +#endif /* !KERNEL */ + +static Boolean findBestArch(struct fileRecord *file, const char *pathName) +{ + unsigned long magic; + struct fat_header *fat; + + + file->fMachOSize = file->fMapSize; + file->fMachO = file->fMap; + magic = ((const struct mach_header *) file->fMachO)->magic; + fat = (struct fat_header *) file->fMachO; + + // Try to figure out what type of file this is + return_if(file->fMapSize < sizeof(unsigned long), false, + ("%s isn't a valid object file - no magic\n", pathName)); + +#if KERNEL + + // CIGAM is byte-swapped MAGIC + if (magic == FAT_MAGIC || magic == FAT_CIGAM) { + + load_return_t load_return; + struct fat_arch fatinfo; + + load_return = fatfile_getarch(NULL, (vm_address_t) fat, &fatinfo); + return_if(load_return != LOAD_SUCCESS, false, + ("Extension \"%s\": has no code for this computer\n", pathName)); + + file->fMachO = file->fMap + fatinfo.offset; + file->fMachOSize = fatinfo.size; + magic = ((const struct mach_header *) file->fMachO)->magic; + } + +#else /* !KERNEL */ + + // Do we need to in-place swap the endianness of the fat header? + if (magic == FAT_CIGAM) { + unsigned long i; + struct fat_arch *arch; + + fat->nfat_arch = NXSwapBigLongToHost(fat->nfat_arch); + return_if(file->fMapSize < sizeof(struct fat_header) + + fat->nfat_arch * sizeof(struct fat_arch), + false, ("%s is too fat\n", file->fPath)); + + arch = (struct fat_arch *) &fat[1]; + for (i = 0; i < fat->nfat_arch; i++) { + arch[i].cputype = NXSwapBigLongToHost(arch[i].cputype); + arch[i].cpusubtype = NXSwapBigLongToHost(arch[i].cpusubtype); + arch[i].offset = NXSwapBigLongToHost(arch[i].offset); + arch[i].size = NXSwapBigLongToHost(arch[i].size); + arch[i].align = NXSwapBigLongToHost(arch[i].align); + } + + magic = NXSwapBigLongToHost(fat->magic); + } + + // Now see if we can find any valid architectures + if (magic == FAT_MAGIC) { + const NXArchInfo *myArch; + unsigned long fatsize; + struct fat_arch *arch; + + fatsize = sizeof(struct fat_header) + + fat->nfat_arch * sizeof(struct fat_arch); + return_if(file->fMapSize < fatsize, + false, ("%s isn't a valid fat file\n", pathName)); + + myArch = NXGetLocalArchInfo(); + arch = NXFindBestFatArch(myArch->cputype, myArch->cpusubtype, + (struct fat_arch *) &fat[1], fat->nfat_arch); + return_if(!arch, + false, ("%s hasn't got arch for %s\n", pathName, myArch->name)); + return_if(arch->offset + arch->size > file->fMapSize, + false, ("%s's %s arch is incomplete\n", pathName, myArch->name)); + file->fMachO = file->fMap + arch->offset; + file->fMachOSize = arch->size; + magic = ((const struct mach_header *) file->fMachO)->magic; + } + +#endif /* KERNEL */ + + return_if(magic != MH_MAGIC, + false, ("%s isn't a valid mach-o\n", pathName)); + + return true; +} + +static Boolean +parseSegments(struct fileRecord *file, struct segment_command *seg) +{ + struct sectionRecord *sections; + int i, nsects = seg->nsects; + const struct segmentMap { + struct segment_command seg; + const struct section sect[1]; + } *segMap; + + if (!file->fSectData) { + file->fSectData = DataCreate(0); + if (!file->fSectData) + return false; + } + + // Increase length of section DataRef and cache data pointer + if (!DataAddLength(file->fSectData, nsects * sizeof(struct sectionRecord))) + return false; + file->fSections = (struct sectionRecord *) DataGetPtr(file->fSectData); + + // Initialise the new sections + sections = &file->fSections[file->fNSects]; + file->fNSects += nsects; + for (i = 0, segMap = (struct segmentMap *) seg; i < nsects; i++) + sections[i].fSection = &segMap->sect[i]; + + return true; +} + +static Boolean +remangleExternSymbols(struct fileRecord *file, const char *pathName) +{ + const struct nlist *sym; + int i, nsyms, len; + DataRef strings = NULL; + + DEBUG_LOG(("Remangling %s\n", pathName)); + + file->fNewStringBlocks = DataCreate(0); + return_if(!file->fNewStringBlocks, false, + ("Unable to allocate new string table for %s\n", pathName)); + + nsyms = file->fSymtab->nsyms; + for (i = 0, sym = file->fSymbolBase; i < nsyms; i++, sym++) { + Rem3Return ret; + const char *symname; + char *newname; + unsigned char n_type = sym->n_type; + + // Not an external symbol or it is a stab in any case don't bother + if ((n_type ^ N_EXT) & (N_STAB | N_EXT)) + continue; + + symname = symNameByIndex(file, i); + +tryRemangleAgain: + if (!strings) { + strings = DataCreate(16 * 1024); // Arbitrary block size + return_if(!strings, false, + ("Unable to allocate new string block for %s\n", pathName)); + } + + len = DataRemaining(strings); + newname = DataGetEndPtr(strings); + ret = rem3_remangle_name(newname, &len, symname); + switch (ret) { + case kR3InternalNotRemangled: + errprintf("Remangler fails on %s in %s\n", symname, pathName); + /* No break */ + case kR3NotRemangled: + break; + + case kR3Remangled: + file->fSymbToStringTable[i] = newname; + file->fRemangled = file->fSymbolsDirty = true; + DataAddLength(strings, len + 1); // returns strlen + break; + + case kR3BufferTooSmallRemangled: + return_if(!DataAppendBytes + (file->fNewStringBlocks, &strings, sizeof(strings)), + false, ("Unable to allocate string table for %s\n", pathName)); + strings = NULL; + goto tryRemangleAgain; + + case kR3BadArgument: + default: + return_if(true, false, + ("Internal error - remangle of %s\n", pathName)); + } + } + + if (strings) { + return_if(!DataAppendBytes + (file->fNewStringBlocks, &strings, sizeof(strings)), + false, ("Unable to allocate string table for %s\n", pathName)); + } + + return true; +} + +static Boolean parseSymtab(struct fileRecord *file, const char *pathName) +{ + const struct nlist *sym; + unsigned int i, firstlocal, nsyms; + unsigned long strsize; + const char *strbase; + Boolean foundOSObject, found295CPP; + + // we found a link edit segment so recompute the bases + if (file->fLinkEditSeg) { + struct segment_command *link = file->fLinkEditSeg; + + file->fSymbolBase = (struct nlist *) + (link->vmaddr + (file->fSymtab->symoff - link->fileoff)); + file->fStringBase = (char *) + (link->vmaddr + (file->fSymtab->stroff - link->fileoff)); + return_if( ( (caddr_t) file->fStringBase + file->fSymtab->strsize + > (caddr_t) link->vmaddr + link->vmsize ), false, + ("%s isn't a valid mach-o le, bad symbols\n", pathName)); + } + else { + file->fSymbolBase = (struct nlist *) + (file->fMachO + file->fSymtab->symoff); + file->fStringBase = (char *) + (file->fMachO + file->fSymtab->stroff); + return_if( ( file->fSymtab->stroff + file->fSymtab->strsize + > file->fMachOSize ), false, + ("%s isn't a valid mach-o, bad symbols\n", pathName)); + } + + nsyms = file->fSymtab->nsyms; + + // If this file the kernel and do we have an executable image + file->fNoKernelExecutable = (vm_page_size == file->fSymtab->symoff) + && (file->fSections[0].fSection->size == 0); + + // Generate a table of pointers to strings indexed by the symbol number + + file->fSym2Strings = DataCreate(nsyms * sizeof(const char *)); + DataSetLength(file->fSym2Strings, nsyms * sizeof(const char *)); + return_if(!file->fSym2Strings, false, + ("Unable to allocate memory - symbol string trans\n", pathName)); + file->fSymbToStringTable = (const char **) DataGetPtr(file->fSym2Strings); + + // Search for the first non-stab symbol in table + strsize = file->fSymtab->strsize; + strbase = file->fStringBase; + firstlocal = 0; + found295CPP = foundOSObject = false; + for (i = 0, sym = file->fSymbolBase; i < nsyms; i++, sym++) { + long strx = sym->n_un.n_strx; + const char *symname = strbase + strx; + unsigned char n_type; + + return_if(((unsigned long) strx > strsize), false, + ("%s has an illegal string offset in symbol %d\n", pathName, i)); + + // Load up lookup symbol look table with sym names + file->fSymbToStringTable[i] = symname; + + n_type = sym->n_type & (N_TYPE | N_EXT); + + // Find the first exported symbol + if ( !firstlocal && (n_type & N_EXT) ) { + firstlocal = i; + file->fLocalSyms = sym; + } + + // Find the a OSObject based subclass by searching for symbols + // that have a suffix of '10superClassE' + symname++; // Skip leading '_' + + if (!foundOSObject + && (n_type == (N_SECT | N_EXT) || n_type == (N_ABS | N_EXT)) + && strx) { + const char *suffix, *endSym; + + endSym = symname + strlen(symname); + + // Find out if this symbol has the superclass suffix. + if (symname[0] == kCPPSymbolPrefix[0] + && symname[1] == kCPPSymbolPrefix[1]) { + + suffix = endSym - sizeof(k31SuperClassSuffix) + 1; + + // Check for a gcc3 OSObject subclass + if (suffix > symname + && !strcmp(suffix, k31SuperClassSuffix)) + foundOSObject = true; + } + else { + suffix = endSym - sizeof(k29SuperClassSuffix); + + // Check for a gcc295 OSObject subclass + if (suffix > symname + && ('.' == *suffix || '$' == *suffix) + && !strcmp(suffix+1, k29SuperClassSuffix)) { + found295CPP = foundOSObject = true; + } + else if (!found295CPP) { + // Finally just check if we need to remangle + symname++; // skip leading '__' + while (*symname) { + if ('_' == *symname++ && '_' == *symname++) { + found295CPP = true; + break; + } + } + } + } + } + else if (sym->n_type == (N_EXT | N_UNDF)) { + if ( !file->fNLocal) // Find the last local symbol + file->fNLocal = i - firstlocal; + if (!found295CPP) { + symname++; // Skip possible second '_' at start. + while (*symname) { + if ('_' == *symname++ && '_' == *symname++) { + found295CPP = true; + break; + } + } + } + } + // Note symname is trashed at this point + } + return_if(i < nsyms, false, + ("%s isn't a valid mach-o, bad symbol strings\n", pathName)); + + return_if(!file->fLocalSyms, false, ("%s has no symbols?\n", pathName)); + + // If we don't have any undefined symbols then all symbols + // must be local so just compute it now if necessary. + if ( !file->fNLocal ) + file->fNLocal = i - firstlocal; + + file->fFoundOSObject = foundOSObject; + + if (found295CPP && !remangleExternSymbols(file, pathName)) + return false; + + return true; +} + +// @@@ gvdl: These functions need to be hashed they are +// going to be way too slow for production code. +static const struct nlist * +findSymbolByAddress(const struct fileRecord *file, void *entry) +{ + // not quite so dumb linear search of all symbols + const struct nlist *sym; + int i, nsyms; + + // First try to find the symbol in the most likely place which is the + // extern symbols + sym = file->fLocalSyms; + for (i = 0, nsyms = file->fNLocal; i < nsyms; i++, sym++) { + if (sym->n_value == (unsigned long) entry && !(sym->n_type & N_STAB) ) + return sym; + } + + // Didn't find it in the external symbols so try to local symbols before + // giving up. + sym = file->fSymbolBase; + for (i = 0, nsyms = file->fSymtab->nsyms; i < nsyms; i++, sym++) { + if ( (sym->n_type & N_EXT) ) + return NULL; + if ( sym->n_value == (unsigned long) entry && !(sym->n_type & N_STAB) ) + return sym; + } + + return NULL; +} + +struct searchContext { + const char *fSymname; + const struct fileRecord *fFile; +}; + +static int symbolSearch(const void *vKey, const void *vSym) +{ + const struct searchContext *key = (const struct searchContext *) vKey; + const struct nlist *sym = (const struct nlist *) vSym; + + return strcmp(key->fSymname + 1, symbolname(key->fFile, sym) + 1); +} + +static const struct nlist * +findSymbolByName(struct fileRecord *file, const char *symname) +{ + if (file->fRemangled) { + // @@@ gvdl: Performance problem + // Linear search as we don't sort after remangling + const struct nlist *sym; + int i = file->fLocalSyms - file->fSymbolBase; + int nLocal = file->fNLocal + i; + + for (sym = file->fLocalSyms; i < nLocal; i++, sym++) + if (!strcmp(symNameByIndex(file, i) + 1, symname + 1)) + return sym; + return NULL; + } + else { + struct searchContext context; + + context.fSymname = symname; + context.fFile = file; + return (struct nlist *) + bsearch(&context, + file->fLocalSyms, file->fNLocal, sizeof(struct nlist), + symbolSearch); + } +} + +static Boolean +relocateSection(const struct fileRecord *file, struct sectionRecord *sectionRec) +{ + const struct nlist *symbol; + const struct section *section; + struct relocRecord *rec; + struct relocation_info *rinfo; + unsigned long i; + unsigned long r_address, r_symbolnum, r_length; + enum reloc_type_generic r_type; + UInt8 *sectionBase; + void **entry; + + sectionRec->fRelocCache = DataCreate( + sectionRec->fSection->nreloc * sizeof(struct relocRecord)); + if (!sectionRec->fRelocCache) + return false; + + section = sectionRec->fSection; + sectionBase = file->fMachO + section->offset; + + rec = (struct relocRecord *) DataGetPtr(sectionRec->fRelocCache); + rinfo = (struct relocation_info *) (file->fMachO + section->reloff); + for (i = 0; i < section->nreloc; i++, rec++, rinfo++) { + + // Totally uninterested in scattered relocation entries + if ( (rinfo->r_address & R_SCATTERED) ) + continue; + + r_address = rinfo->r_address; + entry = (void **) (sectionBase + r_address); + + /* + * The r_address field is really an offset into the contents of the + * section and must reference something inside the section (Note + * that this is not the case for PPC_RELOC_PAIR entries but this + * can't be one with the above checks). + */ + return_if(r_address >= section->size, false, + ("Invalid relocation entry in %s - not in section\n", file->fPath)); + + // If we don't have a VANILLA entry or the Vanilla entry isn't + // a 'long' then ignore the entry and try the next. + r_type = (enum reloc_type_generic) rinfo->r_type; + r_length = rinfo->r_length; + if (r_type != GENERIC_RELOC_VANILLA || r_length != 2) + continue; + + r_symbolnum = rinfo->r_symbolnum; + + /* + * If rinfo->r_extern is set this relocation entry is an external entry + * else it is a local entry. + */ + if (rinfo->r_extern) { + /* + * This is an external relocation entry. + * r_symbolnum is an index into the input file's symbol table + * of the symbol being refered to. The symbol must be + * undefined to be used in an external relocation entry. + */ + return_if(r_symbolnum >= file->fSymtab->nsyms, false, + ("Invalid relocation entry in %s - no symbol\n", file->fPath)); + + /* + * If this is an indirect symbol resolve indirection (all chains + * of indirect symbols have been resolved so that they point at + * a symbol that is not an indirect symbol). + */ + symbol = file->fSymbolBase; + if ((symbol[r_symbolnum].n_type & N_TYPE) == N_INDR) + r_symbolnum = symbol[r_symbolnum].n_value; + symbol = &symbol[r_symbolnum]; + + return_if(symbol->n_type != (N_EXT | N_UNDF), false, + ("Invalid relocation entry in %s - extern\n", file->fPath)); + } + else { + /* + * If the symbol is not in any section then it can't be a + * pointer to a local segment and I don't care about it. + */ + if (r_symbolnum == R_ABS) + continue; + + // Note segment references are offset by 1 from 0. + return_if(r_symbolnum > file->fNSects, false, + ("Invalid relocation entry in %s - local\n", file->fPath)); + + // Find the symbol, if any, that backs this entry + symbol = findSymbolByAddress(file, *entry); + } + + rec->fValue = *entry; // Save the previous value + rec->fRInfo = rinfo; // Save a pointer to the reloc + rec->fSymbol = symbol; // Record the current symbol + + *entry = (void *) rec; // Save pointer to record in object image + } + + DataSetLength(sectionRec->fRelocCache, i * sizeof(struct relocRecord)); + ((struct fileRecord *) file)->fImageDirty = true; + + return true; +} + +static const struct nlist * +findSymbolRefAtLocation(const struct fileRecord *file, + struct sectionRecord *sctn, void **loc) +{ + if (file->fIsKernel) { + if (*loc) + return findSymbolByAddress(file, *loc); + } + else if (sctn->fRelocCache || relocateSection(file, sctn)) { + struct relocRecord *reloc = (struct relocRecord *) *loc; + + if (DataContainsAddr(sctn->fRelocCache, reloc)) + return reloc->fSymbol; + } + + return NULL; +} + +static Boolean +addClass(struct fileRecord *file, + struct metaClassRecord *inClass, + const char *cname) +{ + Boolean result = false; + struct metaClassRecord *newClass = NULL; + struct metaClassRecord **fileClasses = NULL; + int len; + + if (!file->fClassList) { + file->fClassList = DataCreate(0); + if (!file->fClassList) + return false; + } + + do { + // Attempt to allocate all necessary resource first + len = strlen(cname) + 1 + + (int) (&((struct metaClassRecord *) 0)->fClassName); + newClass = (struct metaClassRecord *) malloc(len); + if (!newClass) + break; + + if (!DataAddLength(file->fClassList, sizeof(struct metaClassRecord *))) + break; + fileClasses = (struct metaClassRecord **) + (DataGetPtr(file->fClassList) + DataGetLength(file->fClassList)); + + // Copy the meta Class structure and string name into newClass and + // insert object at end of the file->fClassList and sMergeMetaClasses + *newClass = *inClass; + strcpy(newClass->fClassName, cname); + fileClasses[-1] = newClass; + + return true; + } while (0); + + if (fileClasses) + DataAddLength(file->fClassList, -sizeof(struct metaClassRecord *)); + + if (newClass) + free(newClass); + + return result; +} + +static struct metaClassRecord *getClass(DataRef classList, const char *cname) +{ + if (classList) { + int i, nclass; + struct metaClassRecord **classes, *thisClass; + + nclass = DataGetLength(classList) / sizeof(struct metaClassRecord *); + classes = (struct metaClassRecord **) DataGetPtr(classList); + for (i = 0; i < nclass; i++) { + thisClass = classes[i]; + if (!strcmp(thisClass->fClassName, cname)) + return thisClass; + } + } + + return NULL; +} + +// Add the class 'cname' to the list of known OSObject based classes +// Note 'sym' is the 10superClassE symbol. +static Boolean +recordClass(struct fileRecord *file, const char *cname, const struct nlist *sym) +{ + Boolean result = false; + char *supername = NULL; + const char *classname = NULL; + struct metaClassRecord newClass; + char strbuffer[1024]; + + // Only do the work to find the super class if we are + // not currently working on the kernel. The kernel is the end + // of all superclass chains by definition as the kernel must be binary + // compatible with itself. + if (!file->fIsKernel) { + const char *suffix; + const struct nlist *supersym; + const struct section *section; + struct sectionRecord *sectionRec; + unsigned char sectind = sym->n_sect; + const char *superstr; + void **location; + int snamelen; + + // We can't resolve anything that isn't in a real section + // Note that the sectind is starts at one to make room for the + // NO_SECT flag but the fNSects field isn't offset so we have a + // '>' test. Which means this isn't an OSObject based class + if (sectind == NO_SECT || sectind > file->fNSects) { + result = true; + goto finish; + } + sectionRec = file->fSections + sectind - 1; + section = sectionRec->fSection; + location = (void **) ( file->fMachO + section->offset + + sym->n_value - section->addr ); + + supersym = findSymbolRefAtLocation(file, sectionRec, location); + if (!supersym) { + result = true; // No superclass symbol then it isn't an OSObject. + goto finish; + } + + // Find string in file and skip leading '_' and then find the suffix + superstr = symbolname(file, supersym) + 1; + suffix = superstr + strlen(superstr) - sizeof(kGMetaSuffix) + 1; + if (suffix <= superstr || strcmp(suffix, kGMetaSuffix)) { + result = true; // Not an OSObject superclass so ignore it.. + goto finish; + } + + // Got a candidate so hand it over for class processing. + snamelen = suffix - superstr - sizeof(kOSObjPrefix) + 2; + supername = (char *) malloc(snamelen + 1); + bcopy(superstr + sizeof(kOSObjPrefix) - 2, supername, snamelen); + supername[snamelen] = '\0'; + } + + do { + break_if(getClass(file->fClassList, cname), + ("Duplicate class %s in %s\n", cname, file->fPath)); + + snprintf(strbuffer, sizeof(strbuffer), "%s%s", kVTablePrefix, cname); + newClass.fVTableSym = findSymbolByName(file, strbuffer); + break_if(!newClass.fVTableSym, + ("Can't find vtable %s in %s\n", cname, file->fPath)); + + newClass.fFile = file; + newClass.fSuperName = supername; + newClass.fPatchedVTable = NULL; + + // Can't use cname as it may be a stack variable + // However the vtable's string has the class name as a suffix + // so why don't we use that rather than mallocing a string. + classname = symbolname(file, newClass.fVTableSym) + + sizeof(kVTablePrefix) - 1; + break_if(!addClass(file, &newClass, classname), + ("recordClass - no memory?\n")); + + supername = NULL; + result = true; + } while (0); + +finish: + if (supername) + free(supername); + + return result; +} + + +static Boolean getMetaClassGraph(struct fileRecord *file) +{ + const struct nlist *sym; + int i, nsyms; + + // Search the symbol table for the local symbols that are generated + // by the metaclass system. There are three metaclass variables + // that are relevant. + // + // .metaClass A pointer to the meta class structure. + // .superClass A pointer to the super class's meta class. + // .gMetaClass The meta class structure itself. + // ___vt The VTable for the class . + // + // In this code I'm going to search for any symbols that + // ends in k31SuperClassSuffix as this indicates this class is a conforming + // OSObject subclass and will need to be patched, and it also + // contains a pointer to the super class's meta class structure. + sym = file->fLocalSyms; + for (i = 0, nsyms = file->fNLocal; i < nsyms; i++, sym++) { + const char *symname; + const char *suffix; + char classname[1024]; + unsigned char n_type = sym->n_type & (N_TYPE | N_EXT); + int cnamelen; + + // Check that the symbols is a global and that it has a name. + if (((N_SECT | N_EXT) != n_type && (N_ABS | N_EXT) != n_type) + || !sym->n_un.n_strx) + continue; + + // Only search from the last *sep* in the symbol. + // but skip the leading '_' in all symbols first. + symname = symbolname(file, sym) + 1; + if (symname[0] != kCPPSymbolPrefix[0] + || symname[1] != kCPPSymbolPrefix[1]) + continue; + + suffix = symname + strlen(symname) - sizeof(k31SuperClassSuffix) + 1; + if (suffix <= symname || strcmp(suffix, k31SuperClassSuffix)) + continue; + + // Got a candidate so hand it over for class processing. + cnamelen = suffix - symname - sizeof(kOSObjPrefix) + 2; + return_if(cnamelen + 1 >= (int) sizeof(classname), + false, ("Symbol %s is too long", symname)); + + bcopy(symname + sizeof(kOSObjPrefix) - 2, classname, cnamelen); + classname[cnamelen] = '\0'; + if (!recordClass(file, classname, sym)) + return false; + } + + return_if(!file->fClassList, false, ("Internal error, " + "getMetaClassGraph(%s) found no classes", file->fPath)); + + DEBUG_LOG(("Found %ld classes in %p for %s\n", + DataGetLength(file->fClassList)/sizeof(void*), + file->fClassList, file->fPath)); + + return true; +} + +static Boolean mergeOSObjectsForFile(const struct fileRecord *file) +{ + int i, nmerged; + Boolean foundDuplicates = false; + + DEBUG_LOG(("Merging file %s\n", file->fPath)); // @@@ gvdl: + + if (!file->fClassList) + return true; + + if (!sMergedFiles) { + sMergedFiles = DataCreate(0); + return_if(!sMergedFiles, false, + ("Unable to allocate memory metaclass list\n", file->fPath)); + } + + // Check to see if we have already merged this file + nmerged = DataGetLength(sMergedFiles) / sizeof(struct fileRecord *); + for (i = 0; i < nmerged; i++) { + if (file == ((void **) DataGetPtr(sMergedFiles))[i]) + return true; + } + + if (!sMergeMetaClasses) { + sMergeMetaClasses = DataCreate(0); + return_if(!sMergeMetaClasses, false, + ("Unable to allocate memory metaclass list\n", file->fPath)); + } + else { /* perform a duplicate check */ + int i, j, cnt1, cnt2; + struct metaClassRecord **list1, **list2; + + list1 = (struct metaClassRecord **) DataGetPtr(file->fClassList); + cnt1 = DataGetLength(file->fClassList) / sizeof(*list1); + list2 = (struct metaClassRecord **) DataGetPtr(sMergeMetaClasses); + cnt2 = DataGetLength(sMergeMetaClasses) / sizeof(*list2); + + for (i = 0; i < cnt1; i++) { + for (j = 0; j < cnt2; j++) { + if (!strcmp(list1[i]->fClassName, list2[j]->fClassName)) { + errprintf("duplicate class %s in %s & %s\n", + list1[i]->fClassName, + file->fPath, list2[j]->fFile->fPath); + } + } + } + } + if (foundDuplicates) + return false; + + return_if(!DataAppendBytes(sMergedFiles, &file, sizeof(file)), false, + ("Unable to allocate memory to merge %s\n", file->fPath)); + + return_if(!DataAppendData(sMergeMetaClasses, file->fClassList), false, + ("Unable to allocate memory to merge %s\n", file->fPath)); + + if (file == sKernelFile) + sMergedKernel = true; + + return true; +} + +// Returns a pointer to the base of the section offset by the sections +// base address. The offset is so that we can add nlist::n_values directly +// to this address and get a valid pointer in our memory. +static unsigned char * +getSectionForSymbol(const struct fileRecord *file, const struct nlist *symb, + void ***endP) +{ + const struct section *section; + unsigned char sectind; + unsigned char *base; + + sectind = symb->n_sect; // Default to symbols section + if ((symb->n_type & N_TYPE) == N_ABS && file->fIsKernel) { + // Absolute symbol so we have to iterate over our sections + for (sectind = 1; sectind <= file->fNSects; sectind++) { + unsigned long start, end; + + section = file->fSections[sectind - 1].fSection; + start = section->addr; + end = start + section->size; + if (start <= symb->n_value && symb->n_value < end) { + // Found the relevant section + break; + } + } + } + + // Is the vtable in a valid section? + return_if(sectind == NO_SECT || sectind > file->fNSects, + (unsigned char *) -1, + ("%s isn't a valid kext, bad section reference\n", file->fPath)); + + section = file->fSections[sectind - 1].fSection; + + // for when we start walking the vtable so compute offset's now. + base = file->fMachO + section->offset; + *endP = (void **) (base + section->size); + + return base - section->addr; // return with addr offset +} + +static Boolean resolveKernelVTable(struct metaClassRecord *metaClass) +{ + const struct fileRecord *file; + struct patchRecord *patchedVTable; + void **curEntry, **vtableEntries, **endSection; + unsigned char *sectionBase; + struct patchRecord *curPatch; + int classSize; + + // Should never occur but it doesn't cost us anything to check. + if (metaClass->fPatchedVTable) + return true; + + DEBUG_LOG(("Kernel vtable %s\n", metaClass->fClassName)); // @@@ gvdl: + + // Do we have a valid vtable to patch? + return_if(!metaClass->fVTableSym, + false, ("Internal error - no class vtable symbol?\n")); + + file = metaClass->fFile; + + // If the metaClass we are being to ask is in the kernel then we + // need to do a quick scan to grab the fPatchList in a reliable format + // however we don't need to check the superclass in the kernel + // as the kernel vtables are always correct wrt themselves. + // Note this ends the superclass chain recursion. + return_if(!file->fIsKernel, + false, ("Internal error - resolveKernelVTable not kernel\n")); + + if (file->fNoKernelExecutable) { + // Oh dear attempt to map the kernel's VM into my memory space + return_if(file->fNoKernelExecutable, false, + ("Internal error - fNoKernelExecutable not implemented yet\n")); + } + + // We are going to need the base and the end + sectionBase = getSectionForSymbol(file, metaClass->fVTableSym, &endSection); + if (-1 == (long) sectionBase) + return false; + + vtableEntries = (void **) (sectionBase + metaClass->fVTableSym->n_value); + curEntry = vtableEntries + kVTablePreambleLen; + for (classSize = 0; curEntry < endSection && *curEntry; classSize++) + curEntry++; + + return_if(*curEntry, false, ("Bad kernel image, short section\n")); + + patchedVTable = (struct patchRecord *) + malloc((classSize + 1) * sizeof(struct patchRecord)); + return_if(!patchedVTable, false, ("resolveKernelVTable - no memory\n")); + + // Copy the vtable of this class into the patch table + curPatch = patchedVTable; + curEntry = vtableEntries + kVTablePreambleLen; + for (; *curEntry; curEntry++, curPatch++) { + curPatch->fSymbol = (struct nlist *) + findSymbolByAddress(file, *curEntry); + curPatch->fType = kSymbolLocal; + } + + // Tag the end of the patch vtable + curPatch->fSymbol = NULL; + metaClass->fPatchedVTable = patchedVTable; + + return true; +} + +static const char *addNewString(struct fileRecord *file, + const char *strname, int namelen) +{ + DataRef strings = 0; + const char *newStr; + + namelen++; // Include terminating '\0'; + + // Make sure we have a string table as well for this symbol + if (file->fNewStringBlocks) { + DataRef *blockTable = (DataRef *) DataGetPtr(file->fNewStringBlocks); + int index = DataGetLength(file->fNewStringBlocks) / sizeof(DataRef*); + strings = blockTable[index - 1]; + if (DataRemaining(strings) < namelen) + strings = 0; + } + else + { + file->fNewStringBlocks = DataCreate(0); + return_if(!file->fNewStringBlocks, NULL, + ("Unable to allocate new string table %s\n", file->fPath)); + } + + if (!strings) { + int size = (namelen + 1023) & ~1023; + if (size < 16 * 1024) + size = 16 * 1024; + strings = DataCreate(size); + return_if(!strings, NULL, + ("Unable to allocate new string block %s\n", file->fPath)); + return_if( + !DataAppendBytes(file->fNewStringBlocks, &strings, sizeof(strings)), + false, ("Unable to allocate string table for %s\n", file->fPath)); + } + + newStr = DataGetEndPtr(strings); + DataAppendBytes(strings, strname, namelen); + return newStr; +} + +// reloc->fPatch must contain a valid pointer +static struct nlist * +getNewSymbol(struct fileRecord *file, + const struct relocRecord *reloc, const char *supername) +{ + unsigned int size, i; + struct nlist **sym; + struct nlist *msym; + struct relocation_info *rinfo; + const char *newStr; + + if (!file->fNewSymbols) { + file->fNewSymbols = DataCreate(0); + return_if(!file->fNewSymbols, NULL, + ("Unable to allocate new symbol table for %s\n", file->fPath)); + } + + rinfo = (struct relocation_info *) reloc->fRInfo; + size = DataGetLength(file->fNewSymbols) / sizeof(struct nlist *); + sym = (struct nlist **) DataGetPtr(file->fNewSymbols); + for (i = 0; i < size; i++, sym++) { + int symnum = i + file->fSymtab->nsyms; + newStr = symNameByIndex(file, symnum); + if (!strcmp(newStr, supername)) { + rinfo->r_symbolnum = symnum; + file->fSymbolsDirty = true; + return *sym; + } + } + + // Assert that this is a vaild symbol. I need this condition to be true + // for the later code to make non-zero. So the first time through I'd + // better make sure that it is 0. + return_if(reloc->fSymbol->n_sect, NULL, + ("Undefined symbol entry with non-zero section %s:%s\n", + file->fPath, symbolname(file, reloc->fSymbol))); + + // If we are here we didn't find the symbol so create a new one now + msym = (struct nlist *) malloc(sizeof(struct nlist)); + return_if(!msym, + NULL, ("Unable to create symbol table entry for %s", file->fPath)); + return_if(!DataAppendBytes(file->fNewSymbols, &msym, sizeof(msym)), + NULL, ("Unable to grow symbol table for %s\n", file->fPath)); + + newStr = addNewString(file, supername, strlen(supername)); + if (!newStr) + return NULL; + // If we are here we didn't find the symbol so create a new one now + return_if(!DataAppendBytes(file->fSym2Strings, &newStr, sizeof(newStr)), + NULL, ("Unable to grow symbol table for %s\n", file->fPath)); + file->fSymbToStringTable = (const char **) DataGetPtr(file->fSym2Strings); + + // Offset the string index by the original string table size + // and negate the address to indicate that this is a 'new' symbol + msym->n_un.n_strx = -1; + msym->n_type = (N_EXT | N_UNDF); + msym->n_sect = NO_SECT; + msym->n_desc = 0; + msym->n_value = (unsigned long) newStr; + + // Mark the old symbol as being potentially deletable I can use the + // n_sect field as the input symbol must be of type N_UNDF which means + // that the n_sect field must be set to NO_SECT otherwise it is an + // in valid input file. + ((struct nlist *) reloc->fSymbol)->n_un.n_strx + = -reloc->fSymbol->n_un.n_strx; + ((struct nlist *) reloc->fSymbol)->n_sect = (unsigned char) -1; + + rinfo->r_symbolnum = i + file->fSymtab->nsyms; + file->fSymbolsDirty = true; + return msym; +} + +static struct nlist * +fixOldSymbol(struct fileRecord *file, + const struct relocRecord *reloc, const char *supername) +{ + unsigned int namelen; + struct nlist *sym = (struct nlist *) reloc->fSymbol; + const char *oldname = symbolname(file, sym); + + // assert(sym->n_un.n_strx >= 0); + + namelen = strlen(supername); + + sym->n_un.n_strx = -sym->n_un.n_strx; + if (oldname && namelen < strlen(oldname)) + { + // Overwrite old string in string table + strcpy((char *) oldname, supername); + file->fSymbolsDirty = true; + return sym; + } + + oldname = addNewString(file, supername, namelen); + if (!oldname) + return NULL; + + file->fSymbToStringTable[sym - file->fSymbolBase] = oldname; + file->fSymbolsDirty = true; + return sym; +} + +static enum patchState +symbolCompare(const struct fileRecord *file, + const struct nlist *classsym, + const char *supername) +{ + const char *classname; + + + // Check to see if the target function is locally defined + // if it is then we can assume this is a local vtable override + if ((classsym->n_type & N_TYPE) != N_UNDF) + return kSymbolLocal; + + // Check to see if both symbols point to the same symbol name + // if so then we are still identical. + classname = symbolname(file, classsym); + if (!strcmp(classname, supername)) + return kSymbolIdentical; + + // We know that the target's vtable entry is different from the + // superclass' vtable entry. This means that we will have to apply a + // patch to the current entry, however before returning lets check to + // see if we have a _RESERVEDnnn field 'cause we can use this as a + // registration point that must align between vtables. + if (strstr(supername, kReservedNamePrefix)) + return kSymbolMismatch; + + // OK, we have a superclass difference where the superclass doesn't + // reference a pad function so assume that the superclass is correct. + if (strstr(classname, kReservedNamePrefix)) + return kSymbolPadUpdate; + else + return kSymbolSuperUpdate; +} + +static Boolean patchVTable(struct metaClassRecord *metaClass) +{ + struct metaClassRecord *super = NULL; + struct fileRecord *file; + struct patchRecord *patchedVTable; + struct relocRecord **curReloc, **vtableRelocs, **endSection; + unsigned char *sectionBase; + int classSize; + + // Should never occur but it doesn't cost us anything to check. + if (metaClass->fPatchedVTable) + return true; + + // Do we have a valid vtable to patch? + return_if(!metaClass->fVTableSym, + false, ("Internal error - no class vtable symbol?\n")); + + file = metaClass->fFile; + + // If the metaClass we are being to ask is in the kernel then we + // need to do a quick scan to grab the fPatchList in a reliable format + // however we don't need to check the superclass in the kernel + // as the kernel vtables are always correct wrt themselves. + // Note this ends the superclass chain recursion. + return_if(file->fIsKernel, + false, ("Internal error - patchVTable shouldn't used for kernel\n")); + + if (!metaClass->fSuperName) + return false; + + // The class isn't in the kernel so make sure that the super class + // is patched before patching ouselves. + super = getClass(sMergeMetaClasses, metaClass->fSuperName); + return_if(!super, false, ("Can't find superclass for %s : %s\n", + metaClass->fClassName, metaClass->fSuperName)); + + // Superclass recursion if necessary + if (!super->fPatchedVTable) { + Boolean res; + + if (super->fFile->fIsKernel) + res = resolveKernelVTable(super); + else + res = patchVTable(super); + if (!res) + return false; + } + + DEBUG_LOG(("Patching %s\n", metaClass->fClassName)); // @@@ gvdl: + + // We are going to need the base and the end + + sectionBase = getSectionForSymbol(file, + metaClass->fVTableSym, (void ***) &endSection); + if (-1 == (long) sectionBase) + return false; + + vtableRelocs = (struct relocRecord **) + (sectionBase + metaClass->fVTableSym->n_value); + curReloc = vtableRelocs + kVTablePreambleLen; + for (classSize = 0; curReloc < endSection && *curReloc; classSize++) + curReloc++; + + return_if(*curReloc, false, + ("%s isn't a valid kext, short section\n", file->fPath)); + + patchedVTable = (struct patchRecord *) + malloc((classSize + 1) * sizeof(struct patchRecord)); + return_if(!patchedVTable, false, ("patchedVTable - no memory\n")); + + do { + struct patchRecord *curPatch; + struct nlist *symbol; + + curPatch = patchedVTable; + curReloc = vtableRelocs + kVTablePreambleLen; + + // Grab the super table patches if necessary + // Can't be patching a kernel table as we don't walk super + // class chains in the kernel symbol space. + if (super && super->fPatchedVTable) { + const struct patchRecord *spp; + + spp = super->fPatchedVTable; + + for ( ; spp->fSymbol; curReloc++, spp++, curPatch++) { + const char *supername = + symbolname(super->fFile, spp->fSymbol); + + symbol = (struct nlist *) (*curReloc)->fSymbol; + + curPatch->fType = symbolCompare(file, symbol, supername); + switch (curPatch->fType) { + case kSymbolIdentical: + case kSymbolLocal: + break; + + case kSymbolSuperUpdate: + symbol = getNewSymbol(file, (*curReloc), supername); + break; + + case kSymbolPadUpdate: + symbol = fixOldSymbol(file, (*curReloc), supername); + break; + + case kSymbolMismatch: + errprintf("%s is not compatible with its superclass, " + "%s superclass changed?\n", + metaClass->fClassName, super->fClassName); + goto abortPatch; + + default: + errprintf("Internal error - unknown patch type\n"); + goto abortPatch; + } + if (symbol) { + curPatch->fSymbol = symbol; + (*curReloc)->fSymbol = symbol; + } + else + goto abortPatch; + } + } + + // Copy the remainder of this class' vtable into the patch table + for (; *curReloc; curReloc++, curPatch++) { + // Local reloc symbols + curPatch->fType = kSymbolLocal; + curPatch->fSymbol = (struct nlist *) (*curReloc)->fSymbol; + } + + // Tag the end of the patch vtable + curPatch->fSymbol = NULL; + + metaClass->fPatchedVTable = patchedVTable; + return true; + } while(0); + +abortPatch: + if (patchedVTable) + free(patchedVTable); + + return false; +} + +static Boolean growImage(struct fileRecord *file, vm_size_t delta) +{ +#if !KERNEL + file->fMachOSize += delta; + return (file->fMachO + file->fMachOSize <= file->fPadEnd); +#else /* KERNEL */ + vm_address_t startMachO, endMachO, endMap; + vm_offset_t newMachO; + vm_size_t newsize; + unsigned long i, last = 0; + struct metaClassRecord **classes = NULL; + struct sectionRecord *section; + kern_return_t ret; + + startMachO = (vm_address_t) file->fMachO; + endMachO = startMachO + file->fMachOSize + delta; + endMap = (vm_address_t) file->fMap + file->fMapSize; + + // Do we have room in the current mapped image + if (endMachO < round_page(endMap)) { + file->fMachOSize += delta; + return true; + } + + newsize = endMachO - startMachO; + if (newsize < round_page(file->fMapSize)) { + DEBUG_LOG(("Growing image %s by moving\n", file->fPath)); + + // We have room in the map if we shift the macho image within the + // current map. We will have to patch up pointers into the object. + newMachO = (vm_offset_t) file->fMap; + bcopy((char *) startMachO, (char *) newMachO, file->fMachOSize); + } + else if (file->fIsKmem) { + // kmem_alloced mapping so we can try a kmem_realloc + ret = kmem_realloc(kernel_map, + (vm_address_t) file->fMap, + (vm_size_t) file->fMapSize, + &newMachO, + newsize); + if (KERN_SUCCESS != ret) + return false; + + // If the mapping didn't move then just return + if ((vm_address_t) file->fMap == newMachO) { + file->fMachOSize = file->fMapSize = newsize; + return true; + } + + DEBUG_LOG(("Growing image %s by reallocing\n", file->fPath)); + // We have relocated the kmem image so we are going to have to + // move all of the pointers into the image around. + } + else { + DEBUG_LOG(("Growing image %s by allocating\n", file->fPath)); + // The image doesn't have room for us and I can't kmem_realloc + // then I just have to bite the bullet and copy the object code + // into a bigger memory segment + ret = kmem_alloc(kernel_map, &newMachO, newsize); + + if (KERN_SUCCESS != ret) + return false; + bcopy((char *) startMachO, (void *) newMachO, file->fMachOSize); + file->fIsKmem = true; + } + + + file->fMap = file->fMachO = (unsigned char *) newMachO; + file->fMapSize = newsize; + file->fMachOSize += delta; // Increment the image size + + // If we are here then we have shifted the object image in memory + // I really should change all of my pointers into the image to machO offsets + // but I have run out of time. So I'm going to very quickly go over the + // cached data structures and add adjustments to the addresses that are + // affected. I wonder how long it will take me to get them all. + // + // For every pointer into the MachO I need to add an adjustment satisfying + // the following simultanous equations + // addr_old = macho_old + fixed_offset + // addr_new = macho_new + fixed_offset therefore: + // addr_new = addr_old + (macho_new - macho_old) +#define REBASE(addr, delta) ( ((vm_address_t) (addr)) += (delta) ) + delta = newMachO - startMachO; + + // Rebase the cached-in object 'struct symtab_command' pointer + REBASE(file->fSymtab, delta); + + // Rebase the cached-in object 'struct nlist' pointer for all symbols + REBASE(file->fSymbolBase, delta); + + // Rebase the cached-in object 'struct nlist' pointer for local symbols + REBASE(file->fLocalSyms, delta); + + // Rebase the cached-in object 'char' pointer for the string table + REBASE(file->fStringBase, delta); + + // Ok now we have to go over all of the relocs one last time + // to clean up the pad updates which had their string index negated + // to indicate that we have finished with them. + section = file->fSections; + for (i = 0, last = file->fNSects; i < last; i++, section++) + REBASE(section->fSection, delta); + + // We only ever grow images that contain class lists so dont bother + // the check if file->fClassList is non-zero 'cause it can't be + // assert(file->fClassList); + last = DataGetLength(file->fClassList) + / sizeof(struct metaClassRecord *); + classes = (struct metaClassRecord **) DataGetPtr(file->fClassList); + for (i = 0; i < last; i++) { + struct patchRecord *patch; + + for (patch = classes[i]->fPatchedVTable; patch->fSymbol; patch++) { + vm_address_t symAddr = (vm_address_t) patch->fSymbol; + + // Only need to rebase if the symbol is part of the image + // If this is a new symbol then it was independantly allocated + if (symAddr >= startMachO && symAddr < endMachO) + REBASE(patch->fSymbol, delta); + } + } + + // Finally rebase all of the string table pointers + last = file->fSymtab->nsyms; + for (i = 0; i < last; i++) + REBASE(file->fSymbToStringTable[i], delta); + +#undef REBASE + + return true; + +#endif /* KERNEL */ +} + +static Boolean +prepareFileForLink(struct fileRecord *file) +{ + unsigned long i, last, numnewsyms, newsymsize, newstrsize; + struct sectionRecord *section; + struct nlist **symp, *sym; + DataRef newStrings, *stringBlocks; + + // If we didn't even do a pseudo 'relocate' and dirty the image + // then we can just return now. + if (!file->fImageDirty) + return true; + +DEBUG_LOG(("Linking 2 %s\n", file->fPath)); // @@@ gvdl: + + // We have to go over all of the relocs to repair the damage + // that we have done to the image when we did our 'relocation' + section = file->fSections; + for (i = 0, last = file->fNSects; i < last; i++, section++) { + unsigned char *sectionBase; + struct relocRecord *rec; + unsigned long j, nreloc; + + if (section->fRelocCache) { + sectionBase = file->fMachO + section->fSection->offset; + nreloc = section->fSection->nreloc; + rec = (struct relocRecord *) DataGetPtr(section->fRelocCache); + + // We will need to repair the reloc list + for (j = 0; j < nreloc; j++, rec++) { + void **entry; + struct nlist *sym; + + // Repair Damage to object image + entry = (void **) (sectionBase + rec->fRInfo->r_address); + *entry = rec->fValue; + + // Check if the symbol that this relocation entry points + // to is marked as erasable + sym = (struct nlist *) rec->fSymbol; + if (sym && sym->n_type == (N_EXT | N_UNDF) + && sym->n_sect == (unsigned char) -1) { + // It is in use so we better clear the mark + sym->n_un.n_strx = -sym->n_un.n_strx; + sym->n_sect = NO_SECT; + } + } + + // Clean up the fRelocCache we don't need it any more. + DataRelease(section->fRelocCache); + section->fRelocCache = 0; + } + } + file->fImageDirty = false; // Image is clean + + // If we didn't dirty the symbol table then just return + if (!file->fSymbolsDirty) + return true; + + // calculate total file size increase and check against padding + if (file->fNewSymbols) { + numnewsyms = DataGetLength(file->fNewSymbols); + symp = (struct nlist **) DataGetPtr(file->fNewSymbols); + } + else { + numnewsyms = 0; + symp = 0; + } + numnewsyms /= sizeof(struct nlist *); + file->fSymtab->nsyms += numnewsyms; + + // old sting size + 30% rounded up to nearest page + newstrsize = file->fSymtab->strsize * 21 / 16; + newstrsize = (newstrsize + PAGE_MASK) & ~PAGE_MASK; + newStrings = DataCreate(newstrsize); + return_if(!newStrings, false, + ("Unable to allocate a copy aside buffer, no memory\n")); + + newsymsize = numnewsyms * sizeof(struct nlist); + file->fStringBase += newsymsize; + file->fSymtab->stroff += newsymsize; + + last = file->fSymtab->nsyms - numnewsyms; + newstrsize = 0; + DataAppendBytes(newStrings, &newstrsize, 4); // Leading nuls + sym = file->fSymbolBase; + + // Pre-compute an already offset new symbol pointer. The offset is the + // orignal symbol table. + symp -= last; + for (i = 0; i < file->fSymtab->nsyms; i++, sym++) { + const char *str = symNameByIndex(file, i); + int len = strlen(str) + 1; + unsigned int strx; + + // Rebase sym in the new symbol region + if (i >= last) + sym = symp[i]; + + if (sym->n_un.n_strx < 0 && sym->n_type == (N_EXT | N_UNDF) + && (unsigned char) -1 == sym->n_sect) { + // after patching we find that this symbol is no longer in + // use. So invalidate it by converting it into an N_ABS + // symbol, remove the external bit and null out the name. + bzero(sym, sizeof(*sym)); + sym->n_type = N_ABS; + } + else { + // Repair the symbol for the getNewSymbol case. + if (-1 == sym->n_un.n_strx) + sym->n_value = 0; + + // Record the offset of the string in the new table + strx = DataGetLength(newStrings); + return_if(!DataAppendBytes(newStrings, str, len), false, + ("Unable to append string, no memory\n")); + + sym->n_un.n_strx = strx; + file->fSymbToStringTable[i] = file->fStringBase + strx; + } + } + + // Don't need the new strings any more + last = DataGetLength(file->fNewStringBlocks) / sizeof(DataRef); + stringBlocks = (DataRef *) DataGetPtr(file->fNewStringBlocks); + for (i = 0; i < last; i++) + DataRelease(stringBlocks[i]); + + DataRelease(file->fNewStringBlocks); + file->fNewStringBlocks = 0; + + newstrsize = DataGetLength(newStrings); + newstrsize = (newstrsize + 3) & ~3; // Round to nearest word + return_if( + !growImage(file, newsymsize + newstrsize - file->fSymtab->strsize), + false, ("Unable to patch the extension, no memory\n", file->fPath)); + + // Push out the new symbol table if necessary + if (numnewsyms) { + caddr_t base; + + // Append the new symbols to the original symbol table. + base = (caddr_t) file->fSymbolBase + + (file->fSymtab->nsyms - numnewsyms) * sizeof(struct nlist); + symp = (struct nlist **) DataGetPtr(file->fNewSymbols); + for (i = 0; i < numnewsyms; i++, base += sizeof(struct nlist), symp++) + bcopy(*symp, base, sizeof(struct nlist)); + + DataRelease(file->fNewSymbols); + file->fNewSymbols = 0; + } + + // Push out the new string table if necessary + if (newStrings) { + unsigned long *base = (unsigned long *) file->fStringBase; + unsigned long actuallen = DataGetLength(newStrings); + + // Set the last word in string table to zero before copying data + base[(newstrsize / sizeof(unsigned long)) - 1] = 0; + + // Now copy the new strings back to the end of the file + bcopy((caddr_t) DataGetPtr(newStrings), file->fStringBase, actuallen); + + file->fSymtab->strsize = newstrsize; + + DataRelease(newStrings); + } + + file->fSymbolsDirty = false; + + return true; +} + +Boolean +#if KERNEL +kld_file_map(const char *pathName, + unsigned char *map, + size_t mapSize, + Boolean isKmem) +#else +kld_file_map(const char *pathName) +#endif /* KERNEL */ +{ + struct fileRecord file, *fp = 0; + + // Already done no need to repeat + fp = getFile(pathName); + if (fp) + return true; + + bzero(&file, sizeof(file)); + +#if KERNEL + file.fMap = map; + file.fMapSize = mapSize; + file.fIsKmem = isKmem; +#else + if (!mapObjectFile(&file, pathName)) + return false; +#endif /* KERNEL */ + + do { + const struct machOMapping { + struct mach_header h; + struct load_command c[1]; + } *machO; + const struct load_command *cmd; + int i; + + if (!findBestArch(&file, pathName)) + break; + + machO = (const struct machOMapping *) file.fMachO; + if (file.fMachOSize < machO->h.sizeofcmds) + break; + + file.fIsKernel = (MH_EXECUTE == machO->h.filetype); + + // If the file type is MH_EXECUTE then this must be a kernel + // as all Kernel extensions must be of type MH_OBJECT + for (i = 0, cmd = &machO->c[0]; i < machO->h.ncmds; i++) { + if (cmd->cmd == LC_SYMTAB) + file.fSymtab = (struct symtab_command *) cmd; + else if (cmd->cmd == LC_SEGMENT) { + struct segment_command *seg = (struct segment_command *) cmd; + int nsects = seg->nsects; + + if (nsects) + return_if(!parseSegments(&file, seg), + false, ("%s isn't a valid mach-o, bad segment", + pathName)); + else if (file.fIsKernel) { +#if KERNEL + // We don't need to look for the LinkEdit segment unless + // we are running in the kernel environment. + if (!strcmp(kLinkEditSegName, seg->segname)) + file.fLinkEditSeg = seg; +#endif + } + } + + cmd = (struct load_command *) ((UInt8 *) cmd + cmd->cmdsize); + } + break_if(!file.fSymtab, + ("%s isn't a valid mach-o, no symbols\n", pathName)); + + if (!parseSymtab(&file, pathName)) + break; + + fp = addFile(&file, pathName); + if (!fp) + break; + + if (file.fFoundOSObject && !getMetaClassGraph(fp)) + break; + + if (file.fIsKernel) + sKernelFile = fp; + +#if KERNEL + // Automatically load the kernel's link edit segment if we are + // attempting to load a driver. + if (!sKernelFile) { + extern struct mach_header _mh_execute_header; + extern struct segment_command *getsegbyname(char *seg_name); + + struct segment_command *sg; + size_t kernelSize; + Boolean ret; + + sg = (struct segment_command *) getsegbyname(kLinkEditSegName); + break_if(!sg, ("Can't find kernel link edit segment\n")); + + kernelSize = sg->vmaddr + sg->vmsize - (size_t) &_mh_execute_header; + ret = kld_file_map(kld_basefile_name, + (unsigned char *) &_mh_execute_header, kernelSize, + /* isKmem */ false); + break_if(!ret, ("kld can't map kernel file")); + } +#endif /* KERNEL */ + + return true; + } while(0); + + // Failure path, then clean up + if (fp) + // @@@ gvdl: for the time being leak the file ref in the file table + removeFile(fp); + else + unmapFile(&file); + + return false; +} + +void *kld_file_getaddr(const char *pathName, long *size) +{ + struct fileRecord *file = getFile(pathName); + + if (!file) + return 0; + + if (size) + *size = file->fMachOSize; + + return file->fMachO; +} + +void *kld_file_lookupsymbol(const char *pathName, const char *symname) +{ + struct fileRecord *file = getFile(pathName); + const struct nlist *sym; + const struct section *section; + unsigned char *sectionBase; + unsigned char sectind; + + return_if(!file, + NULL, ("Unknown file %s\n", pathName)); + + sym = findSymbolByName(file, symname); + + // May be a non-extern symbol so look for it there + if (!sym) { + unsigned int i, nsyms; + + sym = file->fSymbolBase; + for (i = 0, nsyms = file->fSymtab->nsyms; i < nsyms; i++, sym++) { + if ( (sym->n_type & N_EXT) ) { + sym = 0; + break; // Terminate search when we hit an extern + } + if ( (sym->n_type & N_STAB) ) + continue; + if ( !strcmp(symname, symNameByIndex(file, i)) ) + break; + } + } + + return_if(!sym, + NULL, ("Unknown symbol %s in %s\n", symname, pathName)); + + // Is the vtable in a valid section? + sectind = sym->n_sect; + return_if(sectind == NO_SECT || sectind > file->fNSects, NULL, + ("Malformed object file, invalid section reference for %s in %s\n", + symname, pathName)); + + section = file->fSections[sectind - 1].fSection; + sectionBase = file->fMachO + section->offset - section->addr; + + return (void *) (sectionBase + sym->n_value); +} + +Boolean kld_file_merge_OSObjects(const char *pathName) +{ + struct fileRecord *file = getFile(pathName); + + return_if(!file, + false, ("Internal error - unable to find file %s\n", pathName)); + + return mergeOSObjectsForFile(file); +} + +Boolean kld_file_patch_OSObjects(const char *pathName) +{ + struct fileRecord *file = getFile(pathName); + struct metaClassRecord **classes; + unsigned long i, last; + + return_if(!file, + false, ("Internal error - unable to find file %s\n", pathName)); + + DEBUG_LOG(("Patch file %s\n", pathName)); // @@@ gvdl: + + // If we don't have any classes we can return now. + if (!file->fClassList) + return true; + + // If we haven't alread merged the kernel then do it now + if (!sMergedKernel && sKernelFile) + mergeOSObjectsForFile(sKernelFile); + return_if(!sMergedKernel, false, ("Internal error no kernel?\n")); + + if (!mergeOSObjectsForFile(file)) + return false; + + // Patch all of the classes in this executable + last = DataGetLength(file->fClassList) / sizeof(void *); + classes = (struct metaClassRecord **) DataGetPtr(file->fClassList); + for (i = 0; i < last; i++) { + if (!patchVTable(classes[i])) + return false; + } + + return true; +} + +Boolean kld_file_prepare_for_link() +{ + if (sMergedFiles) { + unsigned long i, nmerged = 0; + struct fileRecord **files; + + // Check to see if we have already merged this file + nmerged = DataGetLength(sMergedFiles) / sizeof(struct fileRecord *); + files = (struct fileRecord **) DataGetPtr(sMergedFiles); + for (i = 0; i < nmerged; i++) { + if (!prepareFileForLink(files[i])) + return false; + } + } + + // Clear down the meta class table and merged file lists + DataRelease(sMergeMetaClasses); + DataRelease(sMergedFiles); + sMergedFiles = sMergeMetaClasses = NULL; + sMergedKernel = false; + + return true; +} + +void kld_file_cleanup_all_resources() +{ + unsigned long i, nfiles; + +#if KERNEL // @@@ gvdl: + // Debugger("kld_file_cleanup_all_resources"); +#endif + + if (!sFilesTable || !(nfiles = DataGetLength(sFilesTable))) + return; // Nothing to do just return now + + nfiles /= sizeof(struct fileRecord *); + for (i = 0; i < nfiles; i++) + removeFile(((void **) DataGetPtr(sFilesTable))[i]); + + DataRelease(sFilesTable); + sFilesTable = NULL; + + // Don't really have to clean up anything more as the whole + // malloc engine is going to be released and I couldn't be bothered. +} + + +#if !KERNEL +#if 0 +static const struct fileRecord *sortFile; +static int symCompare(const void *vSym1, const void *vSym2) +{ + const struct nlist *sym1 = vSym1; + const struct nlist *sym2 = vSym2; + + { + unsigned int ind1, ind2; + + ind1 = sym1->n_type & N_TYPE; + ind2 = sym2->n_type & N_TYPE; + if (ind1 != ind2) { + // if sym1 is undefined then sym1 must come later than sym2 + if (ind1 == N_UNDF) + return 1; + // if sym2 is undefined then sym1 must come earlier than sym2 + if (ind2 == N_UNDF) + return -1; + /* drop out if neither are undefined */ + } + } + + { + const struct fileRecord *file = sortFile; + const char *name1, *name2; + + name1 = file->fStringBase + sym1->n_un.n_strx; + name2 = file->fStringBase + sym2->n_un.n_strx; + return strcmp(name1, name2); + } +} +#endif /* 0 */ + +Boolean kld_file_debug_dump(const char *pathName, const char *outName) +{ + const struct fileRecord *file = getFile(pathName); + int fd; + Boolean ret = false; + + return_if(!file, false, ("Unknown file %s for dumping\n", pathName)); + + fd = open(outName, O_WRONLY|O_CREAT|O_TRUNC, 0666); + return_if(-1 == fd, false, ("Can't create output file %s - %s(%d)\n", + outName, strerror(errno), errno)); + + do { +#if 0 + // Sorting doesn't work until I fix the relocs too? + + // sort the symbol table appropriately + unsigned int nsyms = file->fSymtab->nsyms + - (file->fLocalSyms - file->fSymbolBase); + sortFile = file; + heapsort((void *) file->fLocalSyms, nsyms, sizeof(struct nlist), + symCompare); +#endif + + break_if(-1 == write(fd, file->fMachO, file->fMachOSize), + ("Can't dump output file %s - %s(%d)\n", + outName, strerror(errno), errno)); + ret = true; + } while(0); + + close(fd); + + return ret; +} + +#endif /* !KERNEL */ + diff --git a/kmodload.tproj/kld_patch.h b/kmodload.tproj/kld_patch.h new file mode 100644 index 0000000..b0e6058 --- /dev/null +++ b/kmodload.tproj/kld_patch.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2001 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/* + * History: + * 2001-05-30 gvdl Initial implementation of the vtable patcher. + */ + +#include + +__BEGIN_DECLS + +#if KERNEL +extern Boolean kld_file_map(const char *pathName, + unsigned char *map, size_t mapSize, + Boolean isKmem); +#else +extern Boolean kld_file_map(const char *pathName); + +extern void * + kld_file_lookupsymbol(const char *pathName, const char *symbolname); + +Boolean kld_file_debug_dump(const char *pathName, const char *outName); +#endif /* KERNEL */ + +extern void *kld_file_getaddr(const char *pathName, long *size); + +extern Boolean kld_file_merge_OSObjects(const char *pathName); + +extern Boolean kld_file_patch_OSObjects(const char *pathName); + +extern Boolean kld_file_prepare_for_link(); + +extern void kld_file_cleanup_all_resources(); + +__END_DECLS diff --git a/kmodload.tproj/kmodload.8 b/kmodload.tproj/kmodload.8 new file mode 100644 index 0000000..2df8de3 --- /dev/null +++ b/kmodload.tproj/kmodload.8 @@ -0,0 +1,103 @@ +.\" +.\" Copyright (c) 1997 Doug Rabson +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: kmodload.8,v 1.4 2002/01/30 22:44:21 lindak Exp $ +.\" +.Dd April 8, 1999 +.Dt KMODLOAD 8 +.Os FreeBSD +.Sh NAME +.Nm kmodload +.Nd loads and starts a kernel module +.Sh SYNOPSIS +.Nm kmodload +.Op Fl v +.Op Fl k Ar kernel_file +.Op Fl d Ar dependency_file +.Op Fl o Ar symbol_file +.Ar module_file +.Sh DESCRIPTION +.Nm kmodload +is deprecated; use +.Xr kextload 8 , +instead. +.Pp +The +.Nm kmodload +command loads the file +.Ar module_file +into the kernel and starts its execution. +.Pp +The following options are available: +.Bl -tag -width indent +.\" ========== +.It Fl d Ar dependency_file +Add symbols from +.Ar dependency_file +to kernel symbols, prior to linking of +.Ar module_file . +The file +.Ar dependency_file +must already be loaded. +.\" ========== +.It Fl k Ar kernel_file +Use an alternate file +.Ar kernel_file , +instead of the default file (/mach), for linking +.Ar module_file . +.\" ========== +.It Fl o Ar symbol_file +Create a file named +.Ar symbol_file +that contains statically-linked output suitable +for remote debugging use with +.Xr gdb 1 . +.\" ========== +.It Fl v +Be more verbose. +.El +.Sh FILES +.Bl -tag -width /modules -compact +.It Pa /System/Library/Extensions +directory containing loadable kernel modules. +.Sh DIAGNOSTICS +The +.Nm kmodload +utility exits with a status of 0 on success. +A status of 1 indicates a usage error. +A status of 2 indicates a indicates a permissions error. +A status of 3 indicates a problem with linking the module. +A status of 4 indicates a internal or system error. +A status of 5 indicates the module has already been loaded. +.Sh SEE ALSO +.Xr gdb 1 , +.Xr kmodstat 8 , +.Xr kmodsyms 8 , +.Xr kmodunload 8 +.Sh HISTORY +The +.Nm kmodload +command is based on the command kldload written by +.An Doug Rabson Aq dfr@FreeBSD.org diff --git a/kmodload.tproj/kmodload.c b/kmodload.tproj/kmodload.c new file mode 100644 index 0000000..7d817b6 --- /dev/null +++ b/kmodload.tproj/kmodload.c @@ -0,0 +1,756 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1997 Doug Rabson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Original code from: + * "kldload.c,v 1.5 1998/07/06 06:58:32 charnier Exp" + */ +#ifndef lint +static const char rcsid[] = + "$Id: kmodload.c,v 1.14 2002/04/15 20:28:30 lindak Exp $"; +#endif /* not lint */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include + +#include "kld_patch.h" +#include "vers_rsrc.h" + +#define KMOD_ERROR_USAGE 1 +#define KMOD_ERROR_PERMS 2 +#define KMOD_ERROR_LOADING 3 +#define KMOD_ERROR_INTERNAL 4 +#define KMOD_ERROR_ALREADY 5 + +#define kKMOD_INFO_SYMBOLNAME "_kmod_info" +#define kKmodsymsName "kmodsyms" + +static mach_port_t kernel_port; +static mach_port_t kernel_priv_port; + +static kmod_info_t *module_dependencies = 0; +static vm_address_t kernel_alloc_address = 0; +static unsigned long kernel_alloc_size = 0; +static vm_address_t kernel_load_address = 0; +static unsigned long kernel_load_size = 0; +static unsigned long kernel_hdr_size = 0; +static unsigned long kernel_hdr_pad = 0; +static unsigned long faked_kernel_load_address = 0; + +static kmod_info_t *loaded_modules = 0; +static int loaded_count = 0; + +static char *progname = "program name?"; +static int kmodsyms = 0; +static int link_addrs_set = 0; +static int verbose = 0; + +static char *debugdumpfile = NULL; + +// must not be static; kld library calls +extern void kld_error_vprintf(const char *format, va_list ap); +static void e_printf(const char *fmt, ...); +static void v_printf(const char *fmt, ...); + +static void machwarn(int error, const char *message); +static void macherr(int error, const char *message); + +static unsigned long linkedit_address(unsigned long size, + unsigned long headers_size); +static void abort_load(int exitcode, const char *fmt, ...); +static void map_and_patch(const char *base, + const char **library_paths, + const char *module); +static void link_base(const char *base, + const char **dependency_paths, + const vm_address_t *dependency_addrs); +static void clear_globals(void); +static kmod_info_t *map_module(const char *filename); +static struct mach_header *link_module(const char *filename, + const char *output); +static vm_address_t update_kmod_info(struct mach_header *mach_header); +static kmod_t load_module(struct mach_header *mach_header, + vm_address_t info); +static void set_module_dependencies(kmod_t id); +static void start_module(kmod_t id); + +static void +usage(void) +{ + if (kmodsyms) { + fprintf(stderr, "usage: %s [-v] [-k kernelfile] [-d dependencyfile] -o symbolfile modulefile\n", progname); + fprintf(stderr, " %s [-v] -k kernelfile [-d dependencyfile@address] -o symbolfile modulefile@address\n", + progname); + } else { + fprintf(stderr, "usage: %s [-v] [-k kernelfile] [-d dependencyfile] [-o symbolfile] modulefile\n", progname); + } + fflush(stderr); + exit(KMOD_ERROR_USAGE); +} + +int +main(int argc, char** argv) +{ + int c, r, i; + char * kernel = _PATH_UNIX; + int kernel_set = 0; + char * gdbfile = 0; +#define MAX_DEPENDANCIES 128 + char * dependencies[MAX_DEPENDANCIES]; + vm_address_t loaded_addresses[MAX_DEPENDANCIES]; + int dependency_count = 0; + struct mach_header *rld_header; + + char * module_path = ""; + vm_address_t module_info = 0; + vm_address_t module_faked_address = 0; + kmod_t module_id = 0; + kmod_info_t *file_kinfo; + + if ((progname = strrchr(argv[0], '/')) == NULL) + progname = argv[0]; + else + ++progname; + + kmodsyms = !strcmp(progname, kKmodsymsName); + + fprintf(stderr, "%s is deprecated; use kextload(8) instead\n", progname); + sleep(5); + + // XXX things to add: + // -p data string to send as outofband data on start + // -P data file to send as outofband data on start + + while ((c = getopt(argc, argv, "D:d:o:k:v")) != -1) + switch (c) { + case 'd': + dependencies[dependency_count] = optarg; + if (kmodsyms) { + char *address; + if ((address = strrchr(optarg, '@'))) { + *address++ = 0; + loaded_addresses[dependency_count] = strtoul(address, NULL, 0); + link_addrs_set++; + } else { + loaded_addresses[dependency_count] = 0; + } + } + if (++dependency_count == MAX_DEPENDANCIES) { + abort_load(KMOD_ERROR_INTERNAL, + "internal error, dependency count overflow."); + } + break; + case 'o': + gdbfile = optarg; + break; + case 'k': + kernel_set++; + kernel = optarg; + break; + case 'v': + verbose = 1; + break; + case 'D': + debugdumpfile = optarg; + break; + default: + usage(); + } + argc -= optind; + argv += optind; + + dependencies[dependency_count] = 0; + loaded_addresses[dependency_count] = 0; + + if (argc != 1) usage(); + + module_path = argv[0]; + + if (kmodsyms) { + char *address; + + if (!gdbfile) usage(); + + // check for @address + if ((address = strrchr(module_path, '@'))) { + *address++ = 0; + module_faked_address = strtoul(address, NULL, 0); + link_addrs_set++; + } else { + module_faked_address = 0; + } + + // if any arg uses @address then they all must be and the kernel must be set + if (link_addrs_set) { + if (!kernel_set) usage(); + if (!module_faked_address) usage(); + for (i=0; i < dependency_count; i++) { + if (!loaded_addresses[i]) usage(); + } + } + } + + // map the module if possible, map_module will fail if there is a problem + file_kinfo = map_module(module_path); + + if (!link_addrs_set) { + kmod_info_t *k; + + // we only need the kernel port if we need to lookup loaded kmods + r = task_for_pid(mach_task_self(), 0, &kernel_port); + machwarn(r, "unable to get kernel task port"); + if (KERN_SUCCESS != r) { + abort_load(KMOD_ERROR_PERMS, + "You must be running as root to load modules in the kernel."); + } + + //get loaded modules + r = kmod_get_info(kernel_port, (void *)&loaded_modules, &loaded_count); // never freed + macherr(r, "kmod_get_info() failed"); + + // check to see if the module has been loaded + k = loaded_modules; + while (k) { + if (!strcmp(k->name, file_kinfo->name)) { + if (!kmodsyms) { + abort_load(KMOD_ERROR_ALREADY, + "the module named '%s' is already loaded.", k->name); + } else { + module_faked_address = k->address; + } + break; + } + k = (k->next) ? (k + 1) : 0; + } + + if (kmodsyms && !module_faked_address) { + abort_load(KMOD_ERROR_USAGE, + "the module named '%s' has not been loaded.", file_kinfo->name); + } + + //XXX it would be nice to be able to verify this is the correct kernel + //XXX by comparing the kernel version strings (once we have them) + } + + map_and_patch(kernel, dependencies, module_path); + + // Tell the kld linker where to get its load address from + kld_address_func(linkedit_address); + + // link the kernel along with any dependencies + link_base(kernel, dependencies, loaded_addresses); + + if (kmodsyms) { + faked_kernel_load_address = module_faked_address; + + if (!faked_kernel_load_address) { + abort_load(KMOD_ERROR_INTERNAL, + "internal error, fell thru without setting module load address."); + } + } + + rld_header = link_module(module_path, gdbfile); + module_info = update_kmod_info(rld_header); + + if (debugdumpfile) + kld_file_debug_dump(module_path, debugdumpfile); + + if (kmodsyms) return 0; + + // we need the priv port to load modules into the kernel + kernel_priv_port = mach_host_self(); /* if we are privileged */ + + module_id = load_module(rld_header, module_info); + set_module_dependencies(module_id); + start_module(module_id); + + return 0; +} + +static void +machwarn(int error, const char *message) +{ + if (KERN_SUCCESS != error) + e_printf("%s: %s", message, mach_error_string(error)); +} + +static void +macherr(int error, const char *message) +{ + if (KERN_SUCCESS != error) + abort_load(KMOD_ERROR_INTERNAL, + "%s: %s", message, mach_error_string(error)); +} + +static kmod_info_t *map_module(const char *filename) +{ + kmod_info_t *file_kinfo; + + if (!kld_file_map(filename)) + exit(KMOD_ERROR_LOADING); + + file_kinfo = kld_file_lookupsymbol(filename, kKMOD_INFO_SYMBOLNAME); + if (!file_kinfo) { + abort_load(KMOD_ERROR_USAGE, + "%s is not a valid kernel module.", filename); + } + + return file_kinfo; +} + +static void +map_and_patch(const char *base, const char **library_paths, const char *module) +{ + if (!kld_file_map(base)) + exit(KMOD_ERROR_INTERNAL); + if (!kld_file_merge_OSObjects(base)) + abort_load(KMOD_ERROR_LOADING, NULL); + + if (*library_paths) { + char **library; + for (library = library_paths; *library; library++) { + map_module(*library); + if (!kld_file_patch_OSObjects(*library)) + abort_load(KMOD_ERROR_LOADING, NULL); + } + } + + // Patch the vtables of the object module we are about to load + // The module has already been mapped in the main() routine as part + // of validation + if (!kld_file_patch_OSObjects(module)) + abort_load(KMOD_ERROR_LOADING, NULL); + + // During the patch up process the mapped images were modified + // to avoid having to allocate more data than necessary. + // Now we have to give the patcher a chance to clean up after itself. + if (!kld_file_prepare_for_link()) + abort_load(KMOD_ERROR_LOADING, NULL); +} + +static void +link_base(const char *base, + const char **dependency_paths, + const vm_address_t *dependency_addrs) +{ + struct mach_header *rld_header; + char *base_addr; + long base_size; + int ok; + + // Get the address and size of the base, usually the kernel + base_addr = kld_file_getaddr(base, &base_size); + if (!base_addr) + exit(KMOD_ERROR_INTERNAL); // Error reported by kld library. + + ok = kld_load_basefile_from_memory(base, base_addr, base_size); + fflush(stdout); + if (!ok) + abort_load(KMOD_ERROR_LOADING, "kld_load_basefile(%s) failed.", base); + + if (*dependency_paths) { + char **dependency = dependency_paths; + const vm_address_t *load_addr = dependency_addrs; + + while (*dependency) { + kmod_info_t *file_kinfo; + + // Find the kmod_info structure in the image. + file_kinfo = + kld_file_lookupsymbol(*dependency, kKMOD_INFO_SYMBOLNAME); + if (!file_kinfo) { + abort_load(KMOD_ERROR_USAGE, + "%s is not a valid kernel module.", *dependency); + } + + // find the address that this dependency is loaded at + if (kmodsyms && *load_addr) { + faked_kernel_load_address = *load_addr; + } else { + kmod_info_t *k; + kmod_info_t *tmp; + int found_it = 0; + + // match up file version of kmod_info with kernel version + k = loaded_modules; + while (k) { + if (!strcmp(k->name, file_kinfo->name)) { + UInt32 kernel_kmod_version; + UInt32 file_kmod_version; + + if (!VERS_parse_string(k->version, &kernel_kmod_version)) { + e_printf("can't parse version string \"%s\" in kernel kmod", + k->version); + abort_load(KMOD_ERROR_LOADING, + "can't parse kernel kmod version string \"%s\"", k->version); + } + + if (!VERS_parse_string(file_kinfo->version, & file_kmod_version)) { + e_printf("can't parse version string \"%s\" in kmod file %s", + file_kinfo->version, *dependency); + abort_load(KMOD_ERROR_LOADING, + "can't parse version string \"%s\" in kmod file %s", + file_kinfo->version, *dependency); + } + + if (kernel_kmod_version != file_kmod_version) { + e_printf("loaded kernel module '%s' version differs.", *dependency); + abort_load(KMOD_ERROR_LOADING, + "loaded version '%s', file version '%s'.", + k->version, file_kinfo->version); + } + found_it++; + break; + } + k = (k->next) ? (k + 1) : 0; + } + if (!found_it) { + abort_load(KMOD_ERROR_USAGE, + "kernel module '%s' is not loaded.", *dependency); + } + + tmp = malloc(sizeof(kmod_info_t)); + if (!tmp) + abort_load(KMOD_ERROR_LOADING, "no memory."); + + *tmp = *k; + tmp->next = module_dependencies; + module_dependencies = tmp; + + faked_kernel_load_address = k->address; + } + + rld_header = link_module(*dependency, 0); + + (void) update_kmod_info(rld_header); + + dependency++; load_addr++; + } + /* make sure we clear these so clean up does the right thing. */ + clear_globals(); + } +} + +#if !defined(page_round) +#define page_trunc(p) ((int)(p)&~(vm_page_size-1)) +#define page_round(p) page_trunc((int)(p)+vm_page_size-1) +#endif + +static unsigned long +linkedit_address(unsigned long size, unsigned long headers_size) +{ + int r; + unsigned long round_segments_size; + unsigned long round_headers_size; + unsigned long round_size; + + kernel_load_size = size; // The actual size allocated by kld_load... + + round_headers_size = page_round(headers_size); + round_segments_size = page_round(size - headers_size); + round_size = round_headers_size + round_segments_size; + + kernel_alloc_size = round_size; + kernel_hdr_size = headers_size; // will need to be rounded to page *after* link. + kernel_hdr_pad = round_headers_size - headers_size; + + if (faked_kernel_load_address) { + kernel_load_address = faked_kernel_load_address + kernel_hdr_pad; + v_printf("Returning fake load address of 0x%8x", kernel_load_address); + return kernel_load_address; + } + if (kmodsyms) { + abort_load(KMOD_ERROR_INTERNAL, + "internal error, almost tried to alloc kernel memory."); + } + + r = vm_allocate(kernel_port, &kernel_alloc_address, + kernel_alloc_size, TRUE); + macherr(r, "unable to allocate kernel memory"); + + v_printf("allocated %ld bytes in kernel space at 0x%8x", + kernel_alloc_size, kernel_alloc_address); + + kernel_load_address = kernel_alloc_address + kernel_hdr_pad; + + v_printf("Returning load address of 0x%x", kernel_load_address); + + return kernel_load_address; +} + +static void +clear_globals(void) +{ + faked_kernel_load_address = 0; + kernel_alloc_address = 0; + kernel_alloc_size = 0; + kernel_load_address = 0; + kernel_load_size = 0; + kernel_hdr_size = 0; + kernel_hdr_pad = 0; + return; +} + +static struct mach_header * +link_module(const char *filename, const char *output) +{ + struct mach_header *rld_header; + char *object_addr; + long object_size; + int ok; + + // Get the address of the thined MachO image. + object_addr = kld_file_getaddr(filename, &object_size); + if (!object_addr) + abort_load(KMOD_ERROR_LOADING, NULL); + + ok = kld_load_from_memory(&rld_header, filename, + object_addr, object_size, output); + fflush(stdout); + if (!ok) + abort_load(KMOD_ERROR_LOADING, "kld_load() failed."); + + return rld_header; +} + +// Update the kmod_info_t structure in the image to be laoded +// Side effect of removing the kKMOD_INFO_SYMBOLNAME from the +// loaded symbol name space, otherwise we would have a duplicate +// defined symbol failure +vm_address_t +update_kmod_info(struct mach_header *mach_header) +{ + char * symbol = kKMOD_INFO_SYMBOLNAME; + kmod_info_t *info; + unsigned long value; + int ok; + + ok = kld_lookup(symbol, &value); fflush(stdout); + if (!ok) + abort_load(KMOD_ERROR_LOADING, "kld_lookup(%s) failed.", symbol); + + ok = kld_forget_symbol(symbol); fflush(stdout); + if (!ok) + abort_load(KMOD_ERROR_LOADING, "kld_forget_symbol(%s) failed.", symbol); + + /* Get the kmod info by translating from the kernel address at value. + */ + info = (kmod_info_t *)(value - (unsigned long)kernel_load_address + (unsigned long)mach_header); + v_printf("kmod name: %s", info->name); + v_printf("kmod start @ 0x%x", (vm_address_t)info->start); + v_printf("kmod stop @ 0x%x", (vm_address_t)info->stop); + + /* Record link info in kmod info struct, rounding the hdr_size to fit + * the adjustment that was made. + */ + info->address = kernel_alloc_address; + info->size = kernel_alloc_size; + info->hdr_size = page_round(kernel_hdr_size); + + if (!info->start) + abort_load(KMOD_ERROR_LOADING, "invalid start address?"); + else if (!info->stop) + abort_load(KMOD_ERROR_LOADING, "invalid stop address?"); + + return (vm_address_t)value; +} + +static kmod_t +load_module(struct mach_header *mach_header, vm_address_t info) +{ + int r; + kmod_t id; + vm_address_t vm_buffer = 0; + + r = vm_allocate(mach_task_self(), &vm_buffer, + kernel_alloc_size, TRUE); + macherr(r, "unable to vm_allocate() copy buffer"); + + /* Copy the linked segment data into the page-aligned buffer. + * Do not round the header size here. + */ + bzero((void *)vm_buffer, kernel_alloc_size); + memcpy((void *)vm_buffer, mach_header, kernel_hdr_size); + memcpy((void *)vm_buffer + page_round(kernel_hdr_size), + (void *)((unsigned long)mach_header + kernel_hdr_size), + kernel_load_size - kernel_hdr_size); + + // copy linked header into kernel address space + r = vm_write(kernel_port, kernel_alloc_address, + vm_buffer, kernel_alloc_size); + macherr(r, "unable to write module into kernel memory"); + + // let the kernel know about it + r = kmod_create(kernel_priv_port, info, &id); + macherr(r, "unable to register module with kernel"); + + v_printf("kmod id %d successfully created at 0x%x size %ld.\n", + id, kernel_alloc_address, kernel_alloc_size); + + // FIXME: make sure this happens even on failure + + vm_deallocate(mach_task_self(), vm_buffer, kernel_alloc_size); + return id; +} + +static void +set_module_dependencies(kmod_t id) +{ + int r; + void * args = 0; + int argsCount= 0; + kmod_info_t *module = module_dependencies; + + while (module) { + + r = kmod_control(kernel_priv_port, KMOD_PACK_IDS(id, module->id), KMOD_CNTL_RETAIN, &args, &argsCount); + machwarn(r, "kmod_control(retain) failed"); + if (r) { + clear_globals(); + r = kmod_destroy(kernel_priv_port, id); + macherr(r, "kmod_destroy failed"); + } + + v_printf("kmod id %d reference count was sucessfully incremented.", module->id); + + module = module->next; + } +} + +static void +start_module(kmod_t id) +{ + int r; + void * args = 0; + int argsCount= 0; + + r = kmod_control(kernel_priv_port, id, KMOD_CNTL_START, &args, &argsCount); + machwarn(r, "kmod_control(start) failed"); + if (r) { + clear_globals(); + kmod_destroy(kernel_priv_port, id); + macherr(r, "kmod_destroy failed"); + } + + v_printf("kmod id %d successfully started.", id); +} + +static void e_printf(const char *fmt, ...) +{ + va_list ap; + char msg[1024]; + + va_start(ap, fmt); + vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + fprintf(stderr, "%s: %s\n", progname, msg); +} + +static void v_printf(const char *fmt, ...) +{ + va_list ap; + char msg[1024]; + + if (!verbose) return; + + va_start(ap, fmt); + vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + printf("%s: %s\n", progname, msg); +} + +static void abort_load(int exitcode, const char *fmt, ...) +{ + if (fmt) { + va_list ap; + char msg[1024]; + + va_start(ap, fmt); + vsnprintf(msg, sizeof(msg), fmt, ap); + va_end(ap); + + fprintf(stderr, "%s: %s\n", progname, msg); + } + + if (!faked_kernel_load_address + && (kernel_alloc_address || kernel_alloc_size)) { + int r; + + v_printf("freeing %ld bytes in kernel space at 0x%x", + kernel_alloc_size, kernel_alloc_address); + r = vm_deallocate(kernel_port, kernel_alloc_address, kernel_alloc_size); + machwarn(r, "unable to cleanup kernel memory"); + } + + exit(exitcode); +} + +__private_extern__ void +kld_error_vprintf(const char *fmt, va_list ap) +{ + vfprintf(stderr, fmt, ap); + fflush(stderr); +} diff --git a/kmodload.tproj/kmodsyms.8 b/kmodload.tproj/kmodsyms.8 new file mode 100644 index 0000000..5de1320 --- /dev/null +++ b/kmodload.tproj/kmodsyms.8 @@ -0,0 +1,119 @@ +.\" +.\" Copyright (c) 1997 Doug Rabson +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: kmodsyms.8,v 1.3 2002/04/15 20:28:31 lindak Exp $ +.\" +.Dd April 8, 1999 +.Dt KMODSYMS 8 +.Os FreeBSD +.Sh NAME +.Nm kmodsyms +.Nd creates a statically-linked symbol file for remote debugging +.Sh SYNOPSIS +.Nm kmodsyms +.Op Fl v +.Op Fl k Ar kernel_file +.Op Fl d Ar dependency_file +.Fl o Ar symbol_file +.Ar module_file +.Nm kmodsyms +.Op Fl v +.Fl k Ar kernel_file +.Op Fl d Ar dependency_file@address +.Fl o Ar symbol_file +.Ar module_file@address +.Sh DESCRIPTION +.Nm kmodsyms +is deprecated; use +.Xr kextload 8 , +instead. +.Pp +The +.Nm kmodsyms +creates a statically-linked symbol file for remote debugging using +.Ar module_file[@address] . +If an address is specified for either the +.Ar module_file +or +.Ar dependency_file +they both must have the address tag. +If addresses are specified, +it is assumed that the command is being run on a different machine +with a potentially different kernel. +Thus, the +.Ar kernel_file +argument is also required. +If addresses are not specified, +they taken from the currently running host machine. +.Pp +The following options are available: +.Bl -tag -width indent +.\" ========== +.It Fl d Ar dependency_file[@address] +Add symbols from +.Ar dependency_file +to kernel symbols prior to linking of +.Ar module_file . +The file +.Ar dependency_file +must already be loaded. +.\" ========== +.It Fl k Ar kernel_file +Use an alternate file +.Ar kernel_file , +instead of the default file (/mach) for linking +.Ar module_file . +.\" ========== +.It Fl o Ar symbol_file +Creates file named +.Ar symbol_file +that contains statically linked output suitable +for remote debugging use with +.Xr gdb 1 . +.\" ========== +.It Fl v +Be more verbose. +.El +.Sh FILES +.Bl -tag -width /modules -compact +.It Pa /System/Library/Extensions +directory containing loadable kernel modules. +.Sh DIAGNOSTICS +The +.Nm kmodsyms +utility exits with a status of 0 on success. +A status of 1 indicates a usage error. +A status of 2 indicates a indicates a permissions error. +A status of 3 indicates a problem with linking the module. +A status of 4 indicates a internal or system error. +.Sh SEE ALSO +.Xr kmodload 8 , +.Xr kmodstat 8 , +.Xr kmodunload 8 +.Sh HISTORY +The +.Nm kmodsyms +command is based on the command kldload, written by +.An Doug Rabson Aq dfr@FreeBSD.org diff --git a/kmodload.tproj/vers_rsrc.c b/kmodload.tproj/vers_rsrc.c new file mode 100644 index 0000000..c10f288 --- /dev/null +++ b/kmodload.tproj/vers_rsrc.c @@ -0,0 +1,425 @@ +#include "vers_rsrc.h" + +int vers_isdigit(char c) { + return (c == '0' || + c == '1' || c == '2' || c == '3' || + c == '4' || c == '5' || c == '6' || + c == '7' || c == '8' || c == '9'); +} + +int vers_isspace(char c) { + return (c == ' ' || + c == '\t' || + c == '\r' || + c == '\n'); +} + + +int isreleasestate(char c) { + return (c == 'd' || c == 'a' || c == 'b' || c == 'f'); +} + + +UInt8 BCD_digit_for_char(char c) { + switch (c) { + case '0': return 0; break; + case '1': return 1; break; + case '2': return 2; break; + case '3': return 3; break; + case '4': return 4; break; + case '5': return 5; break; + case '6': return 6; break; + case '7': return 7; break; + case '8': return 8; break; + case '9': return 9; break; + default: return BCD_illegal; break; + } + return BCD_illegal; +} + + +char BCD_char_for_digit(UInt8 digit) { + switch (digit) { + case 0: return '0'; break; + case 1: return '1'; break; + case 2: return '2'; break; + case 3: return '3'; break; + case 4: return '4'; break; + case 5: return '5'; break; + case 6: return '6'; break; + case 7: return '7'; break; + case 8: return '8'; break; + case 9: return '9'; break; + default: return '?'; break; + } + return '?'; +} + + +VERS_revision VERS_revision_for_string(char ** string_p) { + char * string; + + if (!string_p || !*string_p) { + return VERS_invalid; + } + + string = *string_p; + + if (vers_isspace(string[0]) || string[0] == '\0') { + return VERS_release; + } else { + switch (string[0]) { + case 'd': + if (vers_isdigit(string[1])) { + *string_p = &string[1]; + return VERS_development; + } + break; + case 'a': + if (vers_isdigit(string[1])) { + *string_p = &string[1]; + return VERS_alpha; + } + break; + case 'b': + if (vers_isdigit(string[1])) { + *string_p = &string[1]; + return VERS_beta; + } + break; + case 'f': + if (vers_isdigit(string[1])) { + *string_p = &string[1]; + return VERS_candidate; + } else if (string[1] == 'c' && vers_isdigit(string[2])) { + *string_p = &string[2]; + return VERS_candidate; + } else { + return VERS_invalid; + } + break; + default: + return VERS_invalid; + break; + } + } + + return VERS_invalid; +} + + +int VERS_parse_string(char * vers_string, UInt32 * version_num) { + int result = 1; + VERS_version vers; + char * current_char_p; + UInt8 scratch; + + if (!vers_string || *vers_string == '\0') { + return 0; + } + + vers.vnum = 0; + + current_char_p = &vers_string[0]; + + + /***** + * Check for an initial digit of the major release number. + */ + vers.bytes[0] = BCD_digit_for_char(*current_char_p); + if (vers.bytes[0] == BCD_illegal) { + return 0; + } + + current_char_p++; + + + /***** + * Check for a second digit of the major release number. + */ + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else if (vers_isdigit(*current_char_p)) { + scratch = BCD_digit_for_char(*current_char_p); + if (scratch == BCD_illegal) { + return 0; + } + vers.bytes[0] = BCD_combine(vers.bytes[0], scratch); + current_char_p++; + + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else if (isreleasestate(*current_char_p)) { + goto release_state; + } else if (*current_char_p == '.') { + current_char_p++; + } else { + return 0; + } + } else if (isreleasestate(*current_char_p)) { + goto release_state; + } else if (*current_char_p == '.') { + current_char_p++; + } else { + return 0; + } + + + /***** + * Check for the minor release number. + */ + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else if (vers_isdigit(*current_char_p)) { + vers.bytes[1] = BCD_digit_for_char(*current_char_p); + if (vers.bytes[1] == BCD_illegal) { + return 0; + } + + // Make sure its the first nibble of byte 1! + vers.bytes[1] = BCD_combine(vers.bytes[1], 0); + + current_char_p++; + + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else if (isreleasestate(*current_char_p)) { + goto release_state; + } else if (*current_char_p == '.') { + current_char_p++; + } else { + return 0; + } + } else { + return 0; + } + + + /***** + * Check for the bugfix number. + */ + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else if (vers_isdigit(*current_char_p)) { + scratch = BCD_digit_for_char(*current_char_p); + if (scratch == BCD_illegal) { + return 0; + } + + /* vers.bytes[1] has its left nibble set already */ + vers.bytes[1] = vers.bytes[1] | scratch; + + current_char_p++; + + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else if (isreleasestate(*current_char_p)) { + goto release_state; + } else { + return 0; + } + } else { + return 0; + } + + +release_state: + + /***** + * Check for the release state. + */ + if (*current_char_p == '\0') { + vers.bytes[2] = VERS_release; + vers.bytes[3] = 0xff; + goto finish; + } else { + vers.bytes[2] = VERS_revision_for_string(¤t_char_p); + if (vers.bytes[2] == VERS_invalid) { + return 0; + } + } + + + /***** + * Get the nonrelease revision number (0..255). + */ + if (vers.bytes[2] != VERS_release) { + UInt32 revision_num = 0; + int i; + + if (*current_char_p == '\0' || !vers_isdigit(*current_char_p)) { + return 0; + } + for (i = 0; i < 3 && *current_char_p != '\0'; i++, current_char_p++) { + UInt8 scratch_digit; + scratch_digit = BCD_digit_for_char(*current_char_p); + if (scratch_digit == BCD_illegal) { + return 0; + } + revision_num *= 10; + revision_num += scratch_digit; + } + if (vers_isdigit(*current_char_p) || revision_num > 255) { + return 0; + } + vers.bytes[3] = (UInt8)revision_num; + } + + if (vers.bytes[2] == VERS_release) { + vers.bytes[3] = 0xff; + } else { + if (vers.bytes[2] == VERS_candidate) { + if (vers.bytes[3] == 0) { + return 0; + } else { + vers.bytes[2] = VERS_release; + vers.bytes[3]--; + } + } + } + +finish: + *version_num = CFSwapInt32BigToHost(vers.vnum); + return result; +} + + +#define VERS_STRING_MAX_LEN (12) + +int VERS_string(char * buffer, UInt32 length, UInt32 vers) { + VERS_version version; + int cpos = 0; + int result = 1; // assume success + + char major1; + char major2; + char minor; + char bugfix; + + version.vnum = CFSwapInt32HostToBig(vers); + + /* No buffer or length less than longest possible vers string, + * return 0. + */ + if (!buffer || length < VERS_STRING_MAX_LEN) { + result = 0; + goto finish; + } + + bzero(buffer, length * sizeof(char)); + + + /***** + * Major version number. + */ + major1 = BCD_char_for_digit(BCD_get_left(version.bytes[0])); + if (major1 == '?') { + result = 0; + } /* this is not an 'else' situation */ + if (major1 != '0') { + buffer[cpos] = major1; + cpos++; + } + + major2 = BCD_char_for_digit(BCD_get_right(version.bytes[0])); + if (major2 == '?') { + result = 0; + } + + buffer[cpos] = major2; + cpos++; + + + /***** + * Minor & bug-fix version numbers. + */ + minor = BCD_char_for_digit(BCD_get_left(version.bytes[1])); + if (minor == '?') { + result = 0; + } + bugfix = BCD_char_for_digit(BCD_get_right(version.bytes[1])); + if (bugfix == '?') { + result = 0; + } + + + /* Always display the minor version number. + */ + buffer[cpos] = '.'; + cpos++; + buffer[cpos] = minor; + cpos++; + + + /* Only display the bugfix version number if it's nonzero. + */ + if (bugfix != '0') { + buffer[cpos] = '.'; + cpos++; + buffer[cpos] = bugfix; + cpos++; + } + + + /* If the release state is final, we're done! + */ + if (version.bytes[2] == VERS_release && version.bytes[3] == 255) { + goto finish; + } + + + /***** + * Do the release state and update level. + */ + switch (version.bytes[2]) { + case VERS_development: + buffer[cpos] = 'd'; + cpos++; + break; + case VERS_alpha: + buffer[cpos] = 'a'; + cpos++; + break; + case VERS_beta: + buffer[cpos] = 'b'; + cpos++; + break; + case VERS_release: + if (version.bytes[3] < 255) { + buffer[cpos] = 'f'; + buffer[cpos+1] = 'c'; + cpos += 2; + } else { + goto finish; + } + break; + default: + result = 0; + buffer[cpos] = '?'; + cpos++; + break; + } + + if (version.bytes[2] != VERS_release) { + sprintf(&buffer[cpos], "%d", version.bytes[3]); + } else { + if (version.bytes[3] < 255) { + sprintf(&buffer[cpos], "%d", version.bytes[3] + 1); + } + } + +finish: + return result; +} diff --git a/kmodload.tproj/vers_rsrc.h b/kmodload.tproj/vers_rsrc.h new file mode 100644 index 0000000..db8f94b --- /dev/null +++ b/kmodload.tproj/vers_rsrc.h @@ -0,0 +1,40 @@ +#ifndef _LIBSA_VERS_H_ +#define _LIBSA_VERS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include + +typedef union { + UInt32 vnum; + UInt8 bytes[4]; +} VERS_version; + +typedef enum { + VERS_development = 0x20, + VERS_alpha = 0x40, + VERS_beta = 0x60, + VERS_candidate = 0x70, // for interim usage only! + VERS_release = 0x80, + VERS_invalid = 0xff +} VERS_revision; + +#define BCD_combine(l, r) ( (((l) & 0xf) << 4) | ((r) & 0xf) ) +#define BCD_get_left(p) ( ((p) >> 4) & 0xf ) +#define BCD_get_right(p) ( (p) & 0xf ) + +#define BCD_illegal (0xff) // full byte, 11111111 + +int VERS_parse_string(char * vers_string, UInt32 * version_num); +int VERS_string(char * buffer, UInt32 length, UInt32 vers); + +#ifdef __cplusplus +} +#endif + +#endif _LIBSA_VERS_H_ diff --git a/kmodstat.tproj/Makefile b/kmodstat.tproj/Makefile new file mode 100644 index 0000000..2c9f9ed --- /dev/null +++ b/kmodstat.tproj/Makefile @@ -0,0 +1,48 @@ +# +# Generated by the NeXT Project Builder. +# +# NOTE: Do NOT change this file -- Project Builder maintains it. +# +# Put all of your customizations in files called Makefile.preamble +# and Makefile.postamble (both optional), and Makefile will include them. +# + +NAME = kmodstat + +PROJECTVERSION = 2.8 +PROJECT_TYPE = Tool + +CFILES = kmodstat.c + +OTHERSRCS = Makefile.preamble Makefile Makefile.postamble kmodstat.8 + + +MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles +CODE_GEN_STYLE = DYNAMIC +MAKEFILE = tool.make +NEXTSTEP_INSTALLDIR = /usr/sbin +WINDOWS_INSTALLDIR = /Library/Executables +PDO_UNIX_INSTALLDIR = /bin +LIBS = +DEBUG_LIBS = $(LIBS) +PROF_LIBS = $(LIBS) + + + + +NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc +WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc +PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc +NEXTSTEP_JAVA_COMPILER = /usr/bin/javac +WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe +PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac + +include $(MAKEFILEDIR)/platform.make + +-include Makefile.preamble + +include $(MAKEFILEDIR)/$(MAKEFILE) + +-include Makefile.postamble + +-include Makefile.dependencies diff --git a/kmodstat.tproj/kmodstat.8 b/kmodstat.tproj/kmodstat.8 new file mode 100644 index 0000000..b334b37 --- /dev/null +++ b/kmodstat.tproj/kmodstat.8 @@ -0,0 +1,71 @@ +.\" +.\" Copyright (c) 1997 Doug Rabson +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: kmodstat.8,v 1.2 2002/04/18 18:48:42 lindak Exp $ +.\" +.Dd April 17, 2002 +.Dt KMODSTAT 8 +.Os FreeBSD +.Sh NAME +.Nm kmodstat +.Nd display status of dynamically-loaded kernel modules +.Sh SYNOPSIS +.Nm kmodstat +.Op Fl i Ar id +.Op Fl n Ar name +.Sh DESCRIPTION +.Nm kmodstat +is deprecated; use +.Xr kextstat 8 , +instead. +.Pp +The +.Nm kmodstat +utility displays the status of any kernel modules +that are dynamically linked into the kernel. +.Pp +The following options are available: +.Bl -tag -width indentXX +.\" ========== +.It Fl i Ar id +Display the status of only the kernel module with this ID. +.\" ========== +.It Fl n Ar name +Display the status of only the kernel module with this name. +.El +.Sh DIAGNOSTICS +The +.Nm kmodstat +utility exits with a status of 0 on success +and with a nonzero status if an error occurs. +.Sh SEE ALSO +.Xr kmodload 8 , +.Xr kmodsyms 8 , +.Xr kmodunload 8 +.Sh HISTORY +The +.Nm kmodstat +command is based on the command kldstat, written by +.An Doug Rabson Aq dfr@FreeBSD.org diff --git a/kmodstat.tproj/kmodstat.c b/kmodstat.tproj/kmodstat.c new file mode 100644 index 0000000..d1a744d --- /dev/null +++ b/kmodstat.tproj/kmodstat.c @@ -0,0 +1,206 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1997 Doug Rabson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Original code from: + * "kldstat.c,v 1.5 1998/11/07 00:29:09 des Exp"; + */ + +#ifndef lint +static const char rcsid[] = + "$Id: kmodstat.c,v 1.4 2002/04/18 18:48:42 lindak Exp $"; +#endif /* not lint */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +static void +machwarn(int error, const char *message) +{ + if (error == KERN_SUCCESS) return; + fprintf(stderr, "kmodstat: %s: %s\n", message, mach_error_string(error)); +} + +static void +macherr(int error, const char *message) +{ + if (error == KERN_SUCCESS) return; + fprintf(stderr, "kmodstat: %s: %s\n", message, mach_error_string(error)); + exit(1); +} + +static int +kmod_compare(const void *a, const void *b) +{ + return (((kmod_info_t *)a)->id - ((kmod_info_t *)b)->id); +} + +static void +usage(void) +{ + fprintf(stderr, "usage: kmodstat [-i id] [-n name]\n"); + exit(1); +} + +int +main(int argc, char** argv) +{ + int c, idset = 0, id = 0; + char* name = 0; + kmod_info_t *info, *k; + kmod_reference_t *r; + int i, j, rc, foundit, count, rcount; + mach_port_t kernel_port; + + fprintf(stderr, "%s is deprecated; use kextstat(8) instead\n", argv[0]); + sleep(5); + + while ((c = getopt(argc, argv, "i:n:")) != -1) + switch (c) { + case 'i': + idset++; + id = atoi(optarg); + break; + case 'n': + name = optarg; + break; + default: + usage(); + } + argc -= optind; + argv += optind; + + if (!idset && !name && (argc == 1)) { + name = *argv; + argc--; + } + + if (argc != 0) usage(); + + rc = task_for_pid(mach_task_self(), 0, &kernel_port); + machwarn(rc, "unable to get kernel task port"); + if (rc) { + fprintf(stderr, "kmodstat: Are you running as root?\n"); + exit(1); + } + + rc= kmod_get_info(kernel_port, (void *)&info, &count); + macherr(rc, "kmod_get_info() failed"); + + k = info; count = 0; + while (k) { + count++; + k = (k->next) ? (k + 1) : 0; + } + + k = info; r = (kmod_reference_t *)(info + count); + while (k) { + if ((rcount = (int)k->reference_list)) { + k->reference_list = r; + for (i=0; i < rcount; i++) { + foundit = 0; + for (j=0; j < count; j++) { + if (r->info == info[j].next) { + r->info = (kmod_info_t *)info[j].id; + foundit++; + break; + } + } + // force the id in here, the sorting below messes up the pointers + if (!foundit) r->info = (kmod_info_t *)info[count - 1].id; + r->next = r + 1; + r++; + } + k->reference_list[rcount - 1].next = 0; + } + k = (k->next) ? (k + 1) : 0; + } + + printf("Id Refs Address Size Wired Name (Version) \n"); + + if (!count) return 0; + + qsort(info, count, sizeof(kmod_info_t), kmod_compare); + + if (idset || name) { + kmod_info_t *k = info; + int match_count = 0; + for (i=0; i < count; i++, k++) { + if ((idset && id == k->id) || (name && !strcmp(k->name, name))) { + info[match_count++] = *k; + } + } + count = match_count; + } + for (i=0; i < count; i++, info++) { + printf("%2d %4d %-10p %-10p %-10p %s (%s)", + info->id, info->reference_count, (void *)info->address, + (void *)info->size, (void *)(info->size - info->hdr_size), + info->name, info->version); + + if ((r = info->reference_list)) { + printf(" <%d", (int)r->info); + r = r->next; + while (r) { + printf(" %d", (int)r->info); + r = r->next; + } + printf(">"); + } + printf("\n"); + } + + return 0; +} diff --git a/kmodunload.tproj/Makefile b/kmodunload.tproj/Makefile new file mode 100644 index 0000000..1700393 --- /dev/null +++ b/kmodunload.tproj/Makefile @@ -0,0 +1,48 @@ +# +# Generated by the NeXT Project Builder. +# +# NOTE: Do NOT change this file -- Project Builder maintains it. +# +# Put all of your customizations in files called Makefile.preamble +# and Makefile.postamble (both optional), and Makefile will include them. +# + +NAME = kmodunload + +PROJECTVERSION = 2.8 +PROJECT_TYPE = Tool + +CFILES = kmodunload.c + +OTHERSRCS = Makefile.preamble Makefile Makefile.postamble kmodunload.8 + + +MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles +CODE_GEN_STYLE = DYNAMIC +MAKEFILE = tool.make +NEXTSTEP_INSTALLDIR = /sbin +WINDOWS_INSTALLDIR = /Library/Executables +PDO_UNIX_INSTALLDIR = /bin +LIBS = +DEBUG_LIBS = $(LIBS) +PROF_LIBS = $(LIBS) + + + + +NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc +WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc +PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc +NEXTSTEP_JAVA_COMPILER = /usr/bin/javac +WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe +PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac + +include $(MAKEFILEDIR)/platform.make + +-include Makefile.preamble + +include $(MAKEFILEDIR)/$(MAKEFILE) + +-include Makefile.postamble + +-include Makefile.dependencies diff --git a/kmodunload.tproj/kmodunload.8 b/kmodunload.tproj/kmodunload.8 new file mode 100644 index 0000000..64a8494 --- /dev/null +++ b/kmodunload.tproj/kmodunload.8 @@ -0,0 +1,77 @@ +.\" +.\" Copyright (c) 1997 Doug Rabson +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: kmodunload.8,v 1.2 2002/04/15 20:28:33 lindak Exp $ +.\" +.Dd April 8, 1999 +.Dt KMODUNLOAD 8 +.Os FreeBSD +.Sh NAME +.Nm kmodunload +.Nd stops and unloads a kernel module +.Sh SYNOPSIS +.Nm kmodunload +.Op Fl v +.Fl i Ar id +.Nm kmodunload +.Op Fl v +.Fl n Ar name +.Sh DESCRIPTION +.Nm kmodunload +is deprecated; use +.Xr kextunload 8 , +instead. +.Pp +The +.Nm kmodunload +utility stops and unloads a kernel module which was previously loaded with +.Xr kmodload 8 . +.Pp +The following options are available: +.Bl -tag -width indentXX +.\" ========== +.It Fl i Ar id +Unload the kernel module with this ID. +.\" ========== +.It Fl n Ar name +Unload the kernel module with this name. +.\" ========== +.It Fl v +Be more verbose. +.El +.Sh DIAGNOSTICS +The +.Nm kmodunload +utility exits with a status of 0 on success +and with a nonzero status if an error occurs. +.Sh SEE ALSO +.Xr kmodload 8 , +.Xr kmodstat 8 , +.Xr kmodsyms 8 +.Sh HISTORY +The +.Nm kmodunload +command is based on the command kldunload, written by +.An Doug Rabson Aq dfr@FreeBSD.org diff --git a/kmodunload.tproj/kmodunload.c b/kmodunload.tproj/kmodunload.c new file mode 100644 index 0000000..fcff465 --- /dev/null +++ b/kmodunload.tproj/kmodunload.c @@ -0,0 +1,212 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1997 Doug Rabson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Original code from: + * "kldunload.c,v 1.7 1998/11/07 00:42:52 des Exp" + */ + +#ifndef lint +static const char rcsid[] = + "$Id: kmodunload.c,v 1.5 2002/04/24 20:03:48 lindak Exp $"; +#endif /* not lint */ + +#include +#include +#include +#include + +#include +#include +#include + +static int verbose = 0; +#define v_printf if (verbose) printf + +static void +machwarn(int error, const char *message) +{ + if (error == KERN_SUCCESS) return; + fprintf(stderr, "kmodunload: %s: %s\n", message, mach_error_string(error)); +} + +static void +macherr(int error, const char *message) +{ + if (error == KERN_SUCCESS) return; + fprintf(stderr, "kmodunload: %s: %s\n", message, mach_error_string(error)); + exit(1); +} + +static mach_port_t kernel_priv_port; + +static void +stop_module(kmod_t id) +{ + int r; + void * args = 0; + int argsCount= 0; + + r = kmod_control(kernel_priv_port, id, KMOD_CNTL_STOP, &args, &argsCount); + macherr(r, "kmod_control(stop) failed"); + + v_printf("kmodunload: kmod id %d successfully stopped.\n", id); +} + +static void +unload_module(kmod_t id) +{ + int r; + + r = kmod_destroy(kernel_priv_port, id); + macherr(r, "kmod_destroy() failed"); + + v_printf("kmodunload: kmod id %d successfully unloaded.\n", id); +} + +static void +usage(void) +{ + fprintf(stderr, "usage: kmodunload [-v] -i id\n"); + fprintf(stderr, " kmodunload [-v] -n name\n"); + exit(1); +} + +int +main(int argc, char** argv) +{ + int c; + int id = 0; + char* name = 0; + kmod_info_t *info; + int r; + int count; + mach_port_t kernel_port; + + fprintf(stderr, "%s is deprecated; use kextunload(8) instead\n", argv[0]); + sleep(5); + + while ((c = getopt(argc, argv, "i:n:v")) != -1) + switch (c) { + case 'i': + id = atoi(optarg); + break; + case 'n': + name = optarg; + break; + case 'v': + verbose = 1; + break; + default: + usage(); + } + argc -= optind; + argv += optind; + + if (!id && !name && (argc == 1)) { + name = *argv; + argc--; + } + + if ((argc != 0) || (id && name)) + usage(); + + if ((id == 0) && (name == 0)) + usage(); + + r = task_for_pid(mach_task_self(), 0, &kernel_port); + machwarn(r, "unable to get kernel task port"); + if (r) { + fprintf(stderr, "kmodunload: Are you running as root?\n"); + exit(1); + } + + r = kmod_get_info(kernel_port, (void *)&info, &count); + macherr(r, "kmod_get_info() failed"); + + if (count < 1) { + fprintf(stderr, "kmodunload: there is nothing to unload?\n"); + exit(1); + } + + if (name) { + kmod_info_t *k = info; + while (k) { + if (!strcmp(k->name, name)) { + id = k->id; + break; + } + k = (k->next) ? (k + 1) : 0; + } + if (!k) { + fprintf(stderr, "kmodunload: can't kmod named: %s.\n", name); + exit(1); + } + } else { + kmod_info_t *k = info; + while (k) { + if (id == k->id) { + name = k->name; + break; + } + k = (k->next) ? (k + 1) : 0; + } + if (!name) { + fprintf(stderr, "kmodunload: can't find kmod id %d.\n", id); + exit(1); + } + } + + v_printf("kmodunload: found kmod %s, id %d.\n", name, id); + kernel_priv_port = mach_host_self(); /* if we are privileged */ + + stop_module(id); + unload_module(id); + + return 0; +} + diff --git a/kvm_mkdb.tproj/Makefile b/kvm_mkdb.tproj/Makefile new file mode 100644 index 0000000..70c627c --- /dev/null +++ b/kvm_mkdb.tproj/Makefile @@ -0,0 +1,44 @@ +# +# Generated by the NeXT Project Builder. +# +# NOTE: Do NOT change this file -- Project Builder maintains it. +# +# Put all of your customizations in files called Makefile.preamble +# and Makefile.postamble (both optional), and Makefile will include them. +# + +NAME = kvm_mkdb + +PROJECTVERSION = 2.6 +PROJECT_TYPE = Tool +LANGUAGE = English + +HFILES = extern.h + +CFILES = kvm_mkdb.c nlist.c testdb.c + +OTHERSRCS = Makefile.preamble Makefile Makefile.postamble kvm_mkdb.8 + + +MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles +CODE_GEN_STYLE = DYNAMIC +MAKEFILE = tool.make +NEXTSTEP_INSTALLDIR = /usr/sbin +WINDOWS_INSTALLDIR = /usr/sbin +PDO_UNIX_INSTALLDIR = /usr/sbin +LIBS = +DEBUG_LIBS = $(LIBS) +PROF_LIBS = $(LIBS) + + + + +include $(MAKEFILEDIR)/platform.make + +-include Makefile.preamble + +include $(MAKEFILEDIR)/$(MAKEFILE) + +-include Makefile.postamble + +-include Makefile.dependencies diff --git a/kvm_mkdb.tproj/extern.h b/kvm_mkdb.tproj/extern.h new file mode 100644 index 0000000..32c9204 --- /dev/null +++ b/kvm_mkdb.tproj/extern.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)extern.h 8.1 (Berkeley) 6/6/93 + */ + +void create_knlist __P((char *, DB *)); +void error __P((char *)); +int testdb __P(()); diff --git a/kvm_mkdb.tproj/kvm_mkdb.8 b/kvm_mkdb.tproj/kvm_mkdb.8 new file mode 100644 index 0000000..c68340a --- /dev/null +++ b/kvm_mkdb.tproj/kvm_mkdb.8 @@ -0,0 +1,70 @@ +.\" Copyright (c) 1989, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)kvm_mkdb.8 8.1 (Berkeley) 6/9/93 +.\" +.Dd June 9, 1993 +.Dt KVM_MKDB 8 +.Os +.Sh NAME +.Nm kvm_mkdb +.Nd create kernel database +.Sh SYNOPSIS +.Nm kvm_mkdb +.Op file +.Sh DESCRIPTION +.Nm Kvm_mkdb +creates a database in +.Pa /var/db , +containing information about the specified file. +If no file is specified, +.Pa /vmunix +is used by default. +The file is named ``kvm_filename.db'', where ``filename'' is the +name of the file read. +Various library routines consult this database. +.Pp +The only information currently stored is the kernel namelist, which is +used by the +.Xr kvm_nlist 3 +function, however, in the future the database may contain other static +information about the current system. +.Sh FILES +.Bl -tag -width /var/db/kvm_vmunix.db -compact +.It Pa /vmunix +.It Pa /var/db/kvm_vmunix.db +.El +.Sh SEE ALSO +.Xr kvm_nlist 3 +.Sh HISTORY +The +.Nm kvm_mkdb +utility first appeared in 4.4BSD. diff --git a/kvm_mkdb.tproj/kvm_mkdb.c b/kvm_mkdb.tproj/kvm_mkdb.c new file mode 100644 index 0000000..68a677e --- /dev/null +++ b/kvm_mkdb.tproj/kvm_mkdb.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char copyright[] = +"@(#) Copyright (c) 1990, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +static char sccsid[] = "@(#)kvm_mkdb.c 8.3 (Berkeley) 5/4/95"; +#endif /* not lint */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "extern.h" + +static void usage __P((void)); + +HASHINFO openinfo = { + 4096, /* bsize */ + 128, /* ffactor */ + 1024, /* nelem */ + 2048 * 1024, /* cachesize */ + NULL, /* hash() */ + 0 /* lorder */ +}; + +int +main(argc, argv) + int argc; + char *argv[]; +{ + DB *db; + int ch; + char *p, *nlistpath, *nlistname, dbtemp[MAXPATHLEN], dbname[MAXPATHLEN]; + + while ((ch = getopt(argc, argv, "")) != EOF) + switch (ch) { + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + if (argc > 1) + usage(); + + /* If the existing db file matches the currently running kernel, exit */ + if (testdb()) + exit(0); + +#define basename(cp) ((p = rindex((cp), '/')) != NULL ? p + 1 : (cp)) + nlistpath = argc > 0 ? argv[0] : _PATH_UNIX; + nlistname = basename(nlistpath); + + (void)snprintf(dbtemp, sizeof(dbtemp), "%skvm_%s.tmp", + _PATH_VARDB, nlistname); + (void)snprintf(dbname, sizeof(dbname), "%skvm_%s.db", + _PATH_VARDB, nlistname); + (void)umask(0); + db = dbopen(dbtemp, O_CREAT | O_EXLOCK | O_TRUNC | O_RDWR, + S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH, DB_HASH, &openinfo); + if (db == NULL) + err(1, "%s", dbtemp); + create_knlist(nlistpath, db); + if (db->close(db)) + err(1, "%s", dbtemp); + if (rename(dbtemp, dbname)) + err(1, "rename %s to %s", dbtemp, dbname); + exit(0); +} + +void +usage() +{ + (void)fprintf(stderr, "usage: kvm_mkdb [file]\n"); + exit(1); +} diff --git a/kvm_mkdb.tproj/nlist.c b/kvm_mkdb.tproj/nlist.c new file mode 100644 index 0000000..ba11b44 --- /dev/null +++ b/kvm_mkdb.tproj/nlist.c @@ -0,0 +1,215 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char sccsid[] = "@(#)nlist.c 8.1 (Berkeley) 6/6/93"; +#endif /* not lint */ + +#include + +#ifdef __APPLE__ +#include +#include +#define _AOUT_INCLUDE_ +#else +#include +#endif /* NeXT */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "extern.h" + +typedef struct nlist NLIST; +#define _strx n_un.n_strx +#define _name n_un.n_name + +#define badfmt(str) errx(1, "%s: %s: %s", kfile, str, strerror(EFTYPE)) + +static void badread __P((int, char *)); + +static char *kfile; + +void +create_knlist(name, db) + char *name; + DB *db; +{ + register int nsyms; + struct exec ebuf; + FILE *fp; + NLIST nbuf; + DBT data, key; + int fd, nr, strsize; + char *strtab, buf[1024]; + + kfile = name; + if ((fd = open(name, O_RDONLY, 0)) < 0) + err(1, "%s", name); + + /* Read in exec structure. */ + nr = read(fd, &ebuf, sizeof(struct exec)); + if (nr != sizeof(struct exec)) + badfmt("no exec header"); + + /* Check magic number and symbol count. */ + if (N_BADMAG(ebuf)) + badfmt("bad magic number"); + if (!ebuf.a_syms) + badfmt("stripped"); + + /* Seek to string table. */ + if (lseek(fd, N_STROFF(ebuf), SEEK_SET) == -1) + badfmt("corrupted string table"); + + /* Read in the size of the symbol table. */ + nr = read(fd, (char *)&strsize, sizeof(strsize)); + if (nr != sizeof(strsize)) + badread(nr, "no symbol table"); + + /* Read in the string table. */ + strsize -= sizeof(strsize); + if (!(strtab = malloc(strsize))) + err(1, NULL); + if ((nr = read(fd, strtab, strsize)) != strsize) + badread(nr, "corrupted symbol table"); + + /* Seek to symbol table. */ + if (!(fp = fdopen(fd, "r"))) + err(1, "%s", name); + if (fseek(fp, N_SYMOFF(ebuf), SEEK_SET) == -1) + err(1, "%s", name); + + data.data = (u_char *)&nbuf; + data.size = sizeof(NLIST); + + /* Read each symbol and enter it into the database. */ + nsyms = ebuf.a_syms / sizeof(struct nlist); + while (nsyms--) { + if (fread((char *)&nbuf, sizeof (NLIST), 1, fp) != 1) { + if (feof(fp)) + badfmt("corrupted symbol table"); + err(1, "%s", name); + } + if (!nbuf._strx || nbuf.n_type&N_STAB) + continue; + + key.data = (u_char *)strtab + nbuf._strx - sizeof(long); + key.size = strlen((char *)key.data); + if (db->put(db, &key, &data, 0)) + err(1, "record enter"); + + if (strcmp((char *)key.data, VRS_SYM) == 0) { + long cur_off, voff; +#ifndef KERNTEXTOFF +#define KERNTEXTOFF KERNBASE +#endif + /* + * Calculate offset relative to a normal (non-kernel) + * a.out. KERNTEXTOFF is where the kernel is really + * loaded; N_TXTADDR is where a normal file is loaded. + * From there, locate file offset in text or data. + */ + voff = nbuf.n_value - KERNTEXTOFF + N_TXTADDR(ebuf); + if ((nbuf.n_type & N_TYPE) == N_TEXT) + voff += N_TXTOFF(ebuf) - N_TXTADDR(ebuf); + else + voff += N_DATOFF(ebuf) - N_DATADDR(ebuf); + cur_off = ftell(fp); + if (fseek(fp, voff, SEEK_SET) == -1) + badfmt("corrupted string table"); + + /* + * Read version string up to, and including newline. + * This code assumes that a newline terminates the + * version line. + */ + if (fgets(buf, sizeof(buf), fp) == NULL) + badfmt("corrupted string table"); + + key.data = (u_char *)VRS_KEY; + key.size = sizeof(VRS_KEY) - 1; + data.data = (u_char *)buf; + data.size = strlen(buf); + if (db->put(db, &key, &data, 0)) + err(1, "record enter"); + + /* Restore to original values. */ + data.data = (u_char *)&nbuf; + data.size = sizeof(NLIST); + if (fseek(fp, cur_off, SEEK_SET) == -1) + badfmt("corrupted string table"); + } + } + (void)fclose(fp); +} + +static void +badread(nr, p) + int nr; + char *p; +{ + if (nr < 0) + err(1, "%s", kfile); + badfmt(p); +} diff --git a/kvm_mkdb.tproj/testdb.c b/kvm_mkdb.tproj/testdb.c new file mode 100644 index 0000000..e5f4a69 --- /dev/null +++ b/kvm_mkdb.tproj/testdb.c @@ -0,0 +1,136 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char sccsid[] = "@(#)testdb.c 8.1 (Berkeley) 6/6/93"; +#endif /* not lint */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "extern.h" + +/* Return true if the db file is valid, else false */ +int +testdb() +{ + register DB *db; + register int cc, kd, ret, dbversionlen; + register char *cp, *uf; + DBT rec; + struct nlist nitem; + char dbname[MAXPATHLEN], dbversion[_POSIX2_LINE_MAX]; + char kversion[_POSIX2_LINE_MAX]; + + ret = 0; + db = NULL; + + if ((kd = open(_PATH_KMEM, O_RDONLY, 0)) < 0) + goto close; + + uf = _PATH_UNIX; + if ((cp = rindex(uf, '/')) != 0) + uf = cp + 1; + (void) snprintf(dbname, sizeof(dbname), "%skvm_%s.db", _PATH_VARDB, uf); + if ((db = dbopen(dbname, O_RDONLY, 0, DB_HASH, NULL)) == NULL) + goto close; + + /* Read the version out of the database */ + rec.data = VRS_KEY; + rec.size = sizeof(VRS_KEY) - 1; + if ((db->get)(db, &rec, &rec, 0)) + goto close; + if (rec.data == 0 || rec.size > sizeof(dbversion)) + goto close; + bcopy(rec.data, dbversion, rec.size); + dbversionlen = rec.size; + + /* Read version string from kernel memory */ + rec.data = VRS_SYM; + rec.size = sizeof(VRS_SYM) - 1; + if ((db->get)(db, &rec, &rec, 0)) + goto close; + if (rec.data == 0 || rec.size != sizeof(struct nlist)) + goto close; + bcopy(rec.data, &nitem, sizeof(nitem)); + /* + * Theoretically possible for lseek to be seeking to -1. Not + * that it's something to lie awake nights about, however. + */ + errno = 0; + if (lseek(kd, (off_t)nitem.n_value, SEEK_SET) == -1 && errno != 0) + goto close; + cc = read(kd, kversion, sizeof(kversion)); + if (cc < 0 || cc != sizeof(kversion)) + goto close; + + /* If they match, we win */ + ret = bcmp(dbversion, kversion, dbversionlen) == 0; + +close: if (kd >= 0) + (void)close(kd); + if (db) + (void)(db->close)(db); + return (ret); +} diff --git a/latency.tproj/Makefile b/latency.tproj/Makefile index 9ff5ba4..aa1db0d 100644 --- a/latency.tproj/Makefile +++ b/latency.tproj/Makefile @@ -1,51 +1,12 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = latency - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = latency +Install_Dir = /usr/bin CFILES = latency.c +MANPAGES = latency.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble latency.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -LIBS = -lcurses -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I$(NEXT_ROOT)/System/Library/System.framework/\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd\ - -I$(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders/bsd - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) +Extra_LD_Flags = -lcurses --include Makefile.postamble +Extra_CC_Flags = -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ + -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/latency.tproj/Makefile.postamble b/latency.tproj/Makefile.postamble deleted file mode 100644 index 13c3721..0000000 --- a/latency.tproj/Makefile.postamble +++ /dev/null @@ -1,105 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = 4555 - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 latency.1 $(DSTROOT)/usr/share/man/man1/latency.1 - diff --git a/latency.tproj/Makefile.preamble b/latency.tproj/Makefile.preamble deleted file mode 100644 index a4606c6..0000000 --- a/latency.tproj/Makefile.preamble +++ /dev/null @@ -1,140 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) - -AFTER_INSTALL += install-man-page - diff --git a/latency.tproj/PB.project b/latency.tproj/PB.project deleted file mode 100644 index 4774afa..0000000 --- a/latency.tproj/PB.project +++ /dev/null @@ -1,31 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - HEADERSEARCH = ( - "$(NEXT_ROOT)/System/Library/System.framework/", - "$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders", - "$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd", - "$(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders/bsd" - ); - H_FILES = (); - OTHER_LINKED = (latency.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, latency.1); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_INSTALLDIR = /bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = latency; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Library/Executables; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/login.tproj/Makefile b/login.tproj/Makefile index 3f17ae0..be4e46b 100644 --- a/login.tproj/Makefile +++ b/login.tproj/Makefile @@ -1,54 +1,18 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# +Project = login +Install_Dir = /usr/bin -NAME = login - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool - -Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) HFILES = pathnames.h - CFILES = klogin.c login.c +MANPAGES = login.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble login.1 - +Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin ifeq "$(Embedded)" "NO" -LIBS = -lbsm -lpam -lpam_misc +Extra_LD_Flags = -lbsm -lpam -lpam_misc +Extra_CC_Flags = -DUSE_PAM -DUSE_BSM -no-cpp-precomp endif -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +Install_Program_Mode = 04555 diff --git a/login.tproj/Makefile.postamble b/login.tproj/Makefile.postamble deleted file mode 100644 index 039c5ed..0000000 --- a/login.tproj/Makefile.postamble +++ /dev/null @@ -1,6 +0,0 @@ -INSTALL_AS_USER = root -INSTALL_PERMISSIONS = 4555 - -after_install: - mkdir -p "$(DSTROOT)/usr/share/man/man1" - install -c -m 644 login.1 "$(DSTROOT)/usr/share/man/man1/login.1" diff --git a/login.tproj/Makefile.preamble b/login.tproj/Makefile.preamble deleted file mode 100644 index 9862638..0000000 --- a/login.tproj/Makefile.preamble +++ /dev/null @@ -1,7 +0,0 @@ -CLEAN_ALL_SUBPROJECTS = YES -OTHER_GENERATED_OFILES = $(VERS_OFILE) -ifeq "$(shell tconf --test TARGET_OS_EMBEDDED)" "NO" -OTHER_CFLAGS = -DUSE_PAM -DUSE_BSM -no-cpp-precomp -endif - -AFTER_INSTALL = after_install diff --git a/login.tproj/PB.project b/login.tproj/PB.project deleted file mode 100644 index 04af4a8..0000000 --- a/login.tproj/PB.project +++ /dev/null @@ -1,25 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (); - H_FILES = (pathnames.h); - OTHER_LIBS = (bsm, pam, "pam_misc"); - OTHER_LINKED = (klogin.c, login.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, login.1); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = login; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/makekey.tproj/Makefile b/makekey.tproj/Makefile index 15c58ae..619e6e2 100644 --- a/makekey.tproj/Makefile +++ b/makekey.tproj/Makefile @@ -1,48 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = makekey - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = makekey +Install_Dir = /usr/libexec CFILES = makekey.c +MANPAGES = makekey.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble makekey.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/libexec -WINDOWS_INSTALLDIR = /usr/libexec -PDO_UNIX_INSTALLDIR = /usr/libexec -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/makekey.tproj/Makefile.postamble b/makekey.tproj/Makefile.postamble deleted file mode 100644 index b42299c..0000000 --- a/makekey.tproj/Makefile.postamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A -#COMPATIBILITY_PROJECT_VERSION = 1 - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wall -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User/group ownership -#INSTALL_AS_GROUP = wheel # (probably want to set both of these) -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S # for .a archives -#DYNAMIC_STRIP_OPTS = -S # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. - -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 makekey.8 $(DSTROOT)/usr/share/man/man8 diff --git a/makekey.tproj/Makefile.preamble b/makekey.tproj/Makefile.preamble deleted file mode 100644 index 5741d84..0000000 --- a/makekey.tproj/Makefile.preamble +++ /dev/null @@ -1,119 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set all three of these if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the specified dir on the -# specified public header files with the specified additional flags. Don't put -# $(DSTROOT) in PUBLIC_HEADER_DIR; this is done for you. -PUBLIC_HEADER_DIR = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - - diff --git a/makekey.tproj/PB.project b/makekey.tproj/PB.project deleted file mode 100644 index 3bb03d4..0000000 --- a/makekey.tproj/PB.project +++ /dev/null @@ -1,39 +0,0 @@ -{ - FILESTABLE = { - C_FILES = (); - H_FILES = (); - M_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (makekey.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, makekey.8); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_DOCUMENTEXTENSIONS = (); - NEXTSTEP_INSTALLDIR = /usr/libexec; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/libexec; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = makekey; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/libexec; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/mkfile.tproj/Makefile b/mkfile.tproj/Makefile index 998b2d2..2e16616 100644 --- a/mkfile.tproj/Makefile +++ b/mkfile.tproj/Makefile @@ -1,48 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = mkfile - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = mkfile +Install_Dir = /usr/sbin CFILES = mkfile.c +MANPAGES = mkfile.8 -OTHERSRCS = Makefile.preamble Makefile.postamble mkfile.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/mkfile.tproj/Makefile.postamble b/mkfile.tproj/Makefile.postamble deleted file mode 100644 index 01925dd..0000000 --- a/mkfile.tproj/Makefile.postamble +++ /dev/null @@ -1,3 +0,0 @@ -after_install: - install -d $(DSTROOT)/usr/share/man/man8 - install -c -m 444 mkfile.8 $(DSTROOT)/usr/share/man/man8 diff --git a/mkfile.tproj/Makefile.preamble b/mkfile.tproj/Makefile.preamble deleted file mode 100644 index b7b38d0..0000000 --- a/mkfile.tproj/Makefile.preamble +++ /dev/null @@ -1,3 +0,0 @@ -CLEAN_ALL_SUBPROJECTS = YES -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/mkfile.tproj/PB.project b/mkfile.tproj/PB.project deleted file mode 100644 index 3dceb20..0000000 --- a/mkfile.tproj/PB.project +++ /dev/null @@ -1,36 +0,0 @@ -{ - FILESTABLE = { - C_FILES = (); - H_FILES = (); - M_FILES = (); - OTHER_LINKED = (mkfile.c); - OTHER_SOURCES = (Makefile.preamble); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = mkfile; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/newgrp.tproj/Makefile b/newgrp.tproj/Makefile index da34f45..6f9b314 100644 --- a/newgrp.tproj/Makefile +++ b/newgrp.tproj/Makefile @@ -1,48 +1,11 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = newgrp - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = newgrp +Install_Dir = /usr/bin CFILES = newgrp.c +MANPAGES = newgrp.1 -OTHERSRCS = Makefile Makefile.preamble Makefile.postamble newgrp.1 - -NEXTSTEP_PB_CFLAGS += -D__FBSDID=__RCSID - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(NAME)/Build - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) +Extra_CC_Flags = -D__FBSDID=__RCSID --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +Install_Program_Mode = 04555 diff --git a/newgrp.tproj/Makefile.postamble b/newgrp.tproj/Makefile.postamble deleted file mode 100644 index d153ad1..0000000 --- a/newgrp.tproj/Makefile.postamble +++ /dev/null @@ -1,6 +0,0 @@ -INSTALL_AS_USER = root -INSTALL_PERMISSIONS = 4555 - -after_install: - mkdir -p "$(DSTROOT)/usr/share/man/man1" - install -c -m 644 newgrp.1 "$(DSTROOT)/usr/share/man/man1/newgrp.1" diff --git a/newgrp.tproj/Makefile.preamble b/newgrp.tproj/Makefile.preamble deleted file mode 100644 index 053d503..0000000 --- a/newgrp.tproj/Makefile.preamble +++ /dev/null @@ -1,2 +0,0 @@ - -AFTER_INSTALL = after_install diff --git a/newgrp.tproj/PB.project b/newgrp.tproj/PB.project deleted file mode 100644 index 3901822..0000000 --- a/newgrp.tproj/PB.project +++ /dev/null @@ -1,27 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (); - OTHER_LINKED = (newgrp.c); - OTHER_SOURCES = (Makefile, Makefile.preamble, Makefile.postamble, newgrp.1); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/tmp/$(NAME)/Build"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = newgrp; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/nologin.tproj/Makefile b/nologin.tproj/Makefile index 78df5c1..d38cd3b 100644 --- a/nologin.tproj/Makefile +++ b/nologin.tproj/Makefile @@ -1,41 +1,9 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# +Project = nologin +Install_Dir = /sbin -NAME = nologin +MANPAGES = nologin.8 -PROJECTVERSION = 2.6 -PROJECT_TYPE = Legacy -LANGUAGE = English +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble Makefile.dist\ - nologin.8 nologin.sh - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = common.make -NEXTSTEP_INSTALLDIR = /sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +after_install: + $(INSTALL_SCRIPT) nologin.sh $(DSTROOT)/$(Install_Dir)/nologin diff --git a/nologin.tproj/Makefile.dist b/nologin.tproj/Makefile.dist deleted file mode 100644 index 84e9f0c..0000000 --- a/nologin.tproj/Makefile.dist +++ /dev/null @@ -1,14 +0,0 @@ -# @(#)Makefile 8.2 (Berkeley) 4/22/94 - -MAN8= nologin.0 - -nologin clean depend lint tags: - -beforeinstall: - install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ - ${.CURDIR}/nologin.sh ${DESTDIR}/sbin/nologin - -cleandir: - rm -f nologin.0 - -.include diff --git a/nologin.tproj/Makefile.postamble b/nologin.tproj/Makefile.postamble deleted file mode 100644 index 2cd9b35..0000000 --- a/nologin.tproj/Makefile.postamble +++ /dev/null @@ -1,136 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0) -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES - # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A - # This should be incremented as your API changes. -#COMPATIBILITY_PROJECT_VERSION = 1 - # This should be incremented as your API grows. -#CURRENT_PROJECT_VERSION = 1 - # Defaults to using the "vers_string" hack. - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wmost -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S - # for .a archives -#DYNAMIC_STRIP_OPTS = -S - # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -# Note: on MS Windows, executables, have an extension, so rules and dependencies -# for generated tools should use $(EXECUTABLE_EXT) on the end. - -SHAREDIR = /usr/share -MANDIR = $(SHAREDIR)/man/man8 -MANPAGE = nologin.8 - -nologin: nologin.sh - $(CP) nologin.sh ${SYM_DIR}/nologin - -after_install:: - $(CP) -p ${SYM_DIR}/nologin $(DSTROOT)$(INSTALLDIR)/nologin - $(CHMOD) 555 $(DSTROOT)$(INSTALLDIR)/nologin - $(MKDIRS) $(DSTROOT)$(MANDIR) - $(CP) -f $(MANPAGE) $(DSTROOT)$(MANDIR)/$(MANPAGE) - $(CHMOD) og-w $(DSTROOT)$(MANDIR)/$(MANPAGE) diff --git a/nologin.tproj/Makefile.preamble b/nologin.tproj/Makefile.preamble deleted file mode 100644 index 8940ec4..0000000 --- a/nologin.tproj/Makefile.preamble +++ /dev/null @@ -1,132 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# If you do not want any headers exported before compilations begin, -# uncomment the following line. This can be a big time saver. -#SKIP_EXPORTING_HEADERS = YES - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set these two macros if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the public header directory -# on the specified public header files with the specified additional flags. -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -# Set this for library projects if you want to publish header files. If your -# app or tool project exports headers Don't -# include $(DSTROOT); this is added for you automatically. -PUBLIC_HEADER_DIR = -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Set this for dynamic library projects on platforms where code which references -# a dynamic library must link against an import library (i.e., Windows NT) -# Don't include $(DSTROOT); this is added for you automatically. -IMPORT_LIBRARY_DIR = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Uncomment this to produce a static archive-style (.a) library -#LIBRARY_STYLE = STATIC - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = -# .x files that should have rpcgen run on them -RPCFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - --include ../Makefile.include -OTHER_INITIAL_TARGETS = nologin diff --git a/nologin.tproj/PB.project b/nologin.tproj/PB.project deleted file mode 100644 index b6bd0a8..0000000 --- a/nologin.tproj/PB.project +++ /dev/null @@ -1,45 +0,0 @@ -{ - APPCLASS = NSApplication; - FILESTABLE = { - FRAMEWORKS = (); - M_FILES = (); - OTHER_LINKED = (); - OTHER_SOURCES = ( - Makefile.preamble, - Makefile, - Makefile.postamble, - Makefile.dist, - nologin.sh, - nologin.8 - ); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = "# Set in Makefile"; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_MAINNIB = nologin; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = "# Set in Makefile"; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_MAINNIB = nologin; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = nologin; - PROJECTTYPE = Legacy; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = "# Set in Makefile"; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_MAINNIB = nologin; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/nvram.tproj/Makefile b/nvram.tproj/Makefile index debd283..b54374b 100644 --- a/nvram.tproj/Makefile +++ b/nvram.tproj/Makefile @@ -1,49 +1,9 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = nvram - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = nvram +Install_Dir = /usr/sbin CFILES = nvram.c +MANPAGES = nvram.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble nvram.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -FRAMEWORKS = -framework CoreFoundation -framework IOKit - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +Extra_Frameworks = -framework CoreFoundation -framework IOKit --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/nvram.tproj/Makefile.postamble b/nvram.tproj/Makefile.postamble deleted file mode 100644 index a1cb866..0000000 --- a/nvram.tproj/Makefile.postamble +++ /dev/null @@ -1,136 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0) -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES - # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A - # This should be incremented as your API changes. -#COMPATIBILITY_PROJECT_VERSION = 1 - # This should be incremented as your API grows. -#CURRENT_PROJECT_VERSION = 1 - # Defaults to using the "vers_string" hack. - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wmost -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S - # for .a archives -#DYNAMIC_STRIP_OPTS = -S - # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -# Note: on MS Windows, executables, have an extension, so rules and dependencies -# for generated tools should use $(EXECUTABLE_EXT) on the end. - -# Don't use IMPLICIT_SOURCE_FILES since that will get the CVS directory -# too. Instead, list the files in that directory in the OTHERSRCS line -#IMPLICIT_SOURCE_FILES += nvram - -PAX = /bin/pax -SHAREDIR = /usr/share -MANDIR = $(SHAREDIR)/man/man8 -MANPAGE = nvram.8 - -after_install:: - $(MKDIRS) $(DSTROOT)$(MANDIR) - $(CP) -f $(MANPAGE) $(DSTROOT)$(MANDIR)/$(MANPAGE) - $(CHMOD) og-w $(DSTROOT)$(MANDIR)/$(MANPAGE) diff --git a/nvram.tproj/Makefile.preamble b/nvram.tproj/Makefile.preamble deleted file mode 100644 index 74ce95a..0000000 --- a/nvram.tproj/Makefile.preamble +++ /dev/null @@ -1,130 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# If you do not want any headers exported before compilations begin, -# uncomment the following line. This can be a big time saver. -#SKIP_EXPORTING_HEADERS = YES - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set these two macros if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the public header directory -# on the specified public header files with the specified additional flags. -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -# Set this for library projects if you want to publish header files. If your -# app or tool project exports headers Don't -# include $(DSTROOT); this is added for you automatically. -PUBLIC_HEADER_DIR = -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Set this for dynamic library projects on platforms where code which references -# a dynamic library must link against an import library (i.e., Windows NT) -# Don't include $(DSTROOT); this is added for you automatically. -IMPORT_LIBRARY_DIR = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Uncomment this to produce a static archive-style (.a) library -#LIBRARY_STYLE = STATIC - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = -# .x files that should have rpcgen run on them -RPCFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - diff --git a/nvram.tproj/PB.project b/nvram.tproj/PB.project deleted file mode 100644 index 3184bf4..0000000 --- a/nvram.tproj/PB.project +++ /dev/null @@ -1,30 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - BUNDLES = (); - FRAMEWORKS = (CoreFoundation.framework, IOKit.framework); - H_FILES = (); - LIBS = (); - OTHER_LINKED = (nvram.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, nvram.8); - SUBPROJECTS = (); - TOOLS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = nvram; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/pagesize.tproj/Makefile b/pagesize.tproj/Makefile index 3037610..b0e6eb2 100644 --- a/pagesize.tproj/Makefile +++ b/pagesize.tproj/Makefile @@ -1,41 +1,9 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# +Project = pagesize +Install_Dir = /usr/bin -NAME = pagesize +MANPAGES = pagesize.1 -PROJECTVERSION = 2.6 -PROJECT_TYPE = Legacy -LANGUAGE = English +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble Makefile.dist\ - pagesize.1 pagesize.sh - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = common.make -NEXTSTEP_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +after_install: + $(INSTALL_SCRIPT) pagesize.sh $(DSTROOT)/$(Install_Dir)/pagesize diff --git a/pagesize.tproj/Makefile.dist b/pagesize.tproj/Makefile.dist deleted file mode 100644 index 0a4d652..0000000 --- a/pagesize.tproj/Makefile.dist +++ /dev/null @@ -1,17 +0,0 @@ -# @(#)Makefile 8.2 (Berkeley) 4/3/94 - -MAN1= pagesize.0 - -all pagesize: ${MAN1} - -clean depend lint tags: - -cleandir: - rm -f ${MAN1} - -install: maninstall - install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ - ${.CURDIR}/pagesize.sh ${DESTDIR}/${BINDIR}/pagesize - -.include -.include diff --git a/pagesize.tproj/Makefile.postamble b/pagesize.tproj/Makefile.postamble deleted file mode 100644 index 42cbf76..0000000 --- a/pagesize.tproj/Makefile.postamble +++ /dev/null @@ -1,131 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0) -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES - # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A - # This should be incremented as your API changes. -#COMPATIBILITY_PROJECT_VERSION = 1 - # This should be incremented as your API grows. -#CURRENT_PROJECT_VERSION = 1 - # Defaults to using the "vers_string" hack. - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wmost -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S - # for .a archives -#DYNAMIC_STRIP_OPTS = -S - # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -# Note: on MS Windows, executables, have an extension, so rules and dependencies -# for generated tools should use $(EXECUTABLE_EXT) on the end. - -pagesize: pagesize.sh - $(CP) pagesize.sh ${SYM_DIR}/pagesize - -after_install:: - $(CP) -p ${SYM_DIR}/pagesize $(DSTROOT)$(INSTALLDIR)/pagesize - $(CHMOD) 555 $(DSTROOT)$(INSTALLDIR)/pagesize - mkdir -p $(DSTROOT)/usr/share/man/man1 - install -c -m 444 pagesize.1 $(DSTROOT)/usr/share/man/man1 diff --git a/pagesize.tproj/Makefile.preamble b/pagesize.tproj/Makefile.preamble deleted file mode 100644 index e69a9b5..0000000 --- a/pagesize.tproj/Makefile.preamble +++ /dev/null @@ -1,132 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# If you do not want any headers exported before compilations begin, -# uncomment the following line. This can be a big time saver. -#SKIP_EXPORTING_HEADERS = YES - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set these two macros if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the public header directory -# on the specified public header files with the specified additional flags. -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -# Set this for library projects if you want to publish header files. If your -# app or tool project exports headers Don't -# include $(DSTROOT); this is added for you automatically. -PUBLIC_HEADER_DIR = -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Set this for dynamic library projects on platforms where code which references -# a dynamic library must link against an import library (i.e., Windows NT) -# Don't include $(DSTROOT); this is added for you automatically. -IMPORT_LIBRARY_DIR = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Uncomment this to produce a static archive-style (.a) library -#LIBRARY_STYLE = STATIC - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = -# .x files that should have rpcgen run on them -RPCFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - --include ../Makefile.include -OTHER_INITIAL_TARGETS = pagesize diff --git a/pagesize.tproj/PB.project b/pagesize.tproj/PB.project deleted file mode 100644 index 726e726..0000000 --- a/pagesize.tproj/PB.project +++ /dev/null @@ -1,34 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - CLASSES = (); - H_FILES = (); - OTHER_LINKED = (); - OTHER_SOURCES = ( - Makefile.preamble, - Makefile, - Makefile.postamble, - Makefile.dist, - pagesize.sh, - pagesize.1 - ); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_DOCUMENTEXTENSIONS = (); - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = pagesize; - PROJECTTYPE = Legacy; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/passwd.tproj/Makefile b/passwd.tproj/Makefile index 6cb47e2..d474a92 100644 --- a/passwd.tproj/Makefile +++ b/passwd.tproj/Makefile @@ -1,55 +1,18 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = passwd - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = passwd +Install_Dir = /usr/bin HFILES = stringops.h +CFILES = passwd.c file_passwd.c stringops.c +MANPAGES = passwd.1 -CFILES = nis_passwd.c file_passwd.c od_passwd.c passwd.c\ - stringops.c - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble passwd.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /usr/bin -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - -FRAMEWORK_PATHS = -F/System/Library/PrivateFrameworks -FRAMEWORKS = -framework OpenDirectory -framework CoreFoundation - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble +Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) -include $(MAKEFILEDIR)/$(MAKEFILE) +ifeq ($(Embedded),NO) +CFILES += nis_passwd.c od_passwd.c +Extra_Frameworks = -F/System/Library/PrivateFrameworks -framework OpenDirectory -framework CoreFoundation +Extra_CC_Flags = -F/System/Library/PrivateFrameworks +endif --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +Install_Program_Mode = 04555 diff --git a/passwd.tproj/Makefile.postamble b/passwd.tproj/Makefile.postamble deleted file mode 100644 index de934cc..0000000 --- a/passwd.tproj/Makefile.postamble +++ /dev/null @@ -1,12 +0,0 @@ -VPATH += :../chpass.tproj:../vipw.tproj - -INSTALL_AS_USER = root -INSTALL_PERMISSIONS = 4555 -#CHFLAGS = /usr/bin/chflags - -#after_install:: -# $(CHFLAGS) schg $(DSTROOT)$(INSTALLDIR)/$(NAME) - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 passwd.1 $(DSTROOT)/usr/share/man/man1/passwd.1 diff --git a/passwd.tproj/Makefile.preamble b/passwd.tproj/Makefile.preamble deleted file mode 100644 index a28c6e6..0000000 --- a/passwd.tproj/Makefile.preamble +++ /dev/null @@ -1,3 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) -CLEAN_ALL_SUBPROJECTS = YES -AFTER_INSTALL += install-man-page diff --git a/passwd.tproj/PB.project b/passwd.tproj/PB.project deleted file mode 100644 index 649e9d8..0000000 --- a/passwd.tproj/PB.project +++ /dev/null @@ -1,28 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - CLASSES = (); - C_FILES = (); - H_FILES = (stringops.h); - OTHER_LIBS = (); - OTHER_LINKED = (nis_passwd.c, file_passwd.c, passwd.c, stringops.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, passwd.1); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = passwd; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /usr/bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/passwd.tproj/passwd.c b/passwd.tproj/passwd.c index 0eb30fa..b6c960f 100644 --- a/passwd.tproj/passwd.c +++ b/passwd.tproj/passwd.c @@ -23,8 +23,8 @@ #include #define INFO_FILE 1 -#define INFO_NIS 2 #if !TARGET_OS_EMBEDDED +#define INFO_NIS 2 #define INFO_OPEN_DIRECTORY 3 #endif @@ -196,10 +196,12 @@ main(int argc, char *argv[]) case 'i': if (!strcasecmp(optarg, "file")) { infosystem = INFO_FILE; +#ifdef INFO_NIS } else if (!strcasecmp(optarg, "NIS")) { infosystem = INFO_NIS; } else if (!strcasecmp(optarg, "YP")) { infosystem = INFO_NIS; +#endif #ifdef INFO_OPEN_DIRECTORY } else if (!strcasecmp(optarg, "opendirectory")) { infosystem = INFO_OPEN_DIRECTORY; @@ -259,9 +261,11 @@ main(int argc, char *argv[]) case INFO_FILE: file_passwd(user, locn); break; +#ifdef INFO_NIS case INFO_NIS: nis_passwd(user, locn); break; +#endif #ifdef INFO_OPEN_DIRECTORY case INFO_OPEN_DIRECTORY: od_passwd(user, locn, auth); diff --git a/pwd_mkdb.tproj/Makefile b/pwd_mkdb.tproj/Makefile index 2ff74a3..98c0b2d 100644 --- a/pwd_mkdb.tproj/Makefile +++ b/pwd_mkdb.tproj/Makefile @@ -1,50 +1,11 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = pwd_mkdb - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = pwd_mkdb +Install_Dir = /usr/sbin HFILES = pw_scan.h - CFILES = pwd_mkdb.c pw_scan.c - OTHERSRCS = Makefile.preamble Makefile Makefile.postamble pwd_mkdb.8 +MANPAGES = pwd_mkdb.8 +Extra_CC_Flags = -D_PW_NAME_LEN=MAXLOGNAME -D_PW_YPTOKEN=\"__YP!\" -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/pwd_mkdb.tproj/Makefile.postamble b/pwd_mkdb.tproj/Makefile.postamble deleted file mode 100644 index 2d18955..0000000 --- a/pwd_mkdb.tproj/Makefile.postamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app) -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target - - -# Change defaults assumed by the standard app makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if -# you would like changes to them to invalidate previous builds. The project -# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build. -#MAKEFILES = Makefile - -# Optimization flag passed to compiler: -#OPTIMIZATION_CFLAG = -O - -# Flags always passed to compiler: -#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall - -# Flags passed to compiler in normal 'app' compiles: -#NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG) - -# Flags passed to compiler in 'debug' compiles: -#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG - -# Flags passed to compiler in 'profile' compiles -#PROFILE_CFLAGS = $(COMMON_CFLAGS) -pg $(OPTIMIZATION_CFLAG) -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User to chown app to -#INSTALL_AS_GROUP = wheel # Group to chgrp app to -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for bundles, apps with bundles, and apps without bundles, -# respectively. -#RELOCATABLE_STRIP_OPTS = -x -u -#DYLD_APP_STRIP_OPTS = -A -n -#APP_STRIP_OPTS = -#TOOL_STRIP_OPTS = -#LIBRARY_STRIP_OPTS = -x -S # Note: -S strips debugging symbols -# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but -# developers doing their own dynamic loading should set this to -# $(DYLD_APP_STRIP_OPTS)). - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Typical -# user-defined rules are before_install and after_install (please don't -# redefine things like install or app, as they are owned by the top-level -# Makefile API), which are rules that get invoked before and after the install -# target runs. Such rules should be specified with the '::' syntax rather than -# a single colon. - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man8 - install -c -m 444 pwd_mkdb.8 $(DSTROOT)/usr/share/man/man8/pwd_mkdb.8 diff --git a/pwd_mkdb.tproj/Makefile.preamble b/pwd_mkdb.tproj/Makefile.preamble deleted file mode 100644 index 12b2108..0000000 --- a/pwd_mkdb.tproj/Makefile.preamble +++ /dev/null @@ -1,115 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -D_PW_NAME_LEN=MAXLOGNAME -D_PW_YPTOKEN=\"__YP!\" -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = -# Additional libs to link apps against ('profile' target) -OTHER_PROF_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -AFTER_INSTALL += install-man-page - diff --git a/pwd_mkdb.tproj/PB.project b/pwd_mkdb.tproj/PB.project deleted file mode 100644 index 71b7d6f..0000000 --- a/pwd_mkdb.tproj/PB.project +++ /dev/null @@ -1,41 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (); - H_FILES = (pw_scan.h); - OTHER_LIBS = (); - OTHER_LINKED = (pwd_mkdb.c, pw_scan.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, pwd_mkdb.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = pwd_mkdb; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/reboot.tproj/Makefile b/reboot.tproj/Makefile index 804761c..40903ab 100644 --- a/reboot.tproj/Makefile +++ b/reboot.tproj/Makefile @@ -1,51 +1,16 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = reboot - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = reboot +Install_Dir = /sbin CFILES = reboot.c -DEFSFILES = kextmanager.defs - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble Makefile.dist\ - boot_hp300.8 boot_i386.8 boot_sparc.8 boot_tahoe.8\ - boot_vax.8 reboot.8 $(DEFSFILES) - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /sbin -WINDOWS_INSTALLDIR = /sbin -PDO_UNIX_INSTALLDIR = /sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble +MANPAGES = reboot.8 -include $(MAKEFILEDIR)/$(MAKEFILE) +Embedded = $(shell tconf --test TARGET_OS_EMBEDDED) +ifeq ($(Embedded),NO) +USERDEFS = kextmanager.defs +endif --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.dependencies +after_install: + $(LN) $(DSTROOT)/$(Install_Dir)/reboot $(DSTROOT)$(Install_Dir)/halt + $(LN) -fs reboot.8 $(DSTROOT)/usr/share/man/man8/halt.8 diff --git a/reboot.tproj/Makefile.dist b/reboot.tproj/Makefile.dist deleted file mode 100644 index f4e1a55..0000000 --- a/reboot.tproj/Makefile.dist +++ /dev/null @@ -1,18 +0,0 @@ -# @(#)Makefile 8.1 (Berkeley) 6/5/93 - -PROG= reboot -DPADD= ${LIBUTIL} -LDADD= -lutil -MAN8= reboot.0 boot_hp300.0 boot_i386.0 boot_sparc.0 boot_tahoe.0 boot_vax.0 -MLINKS= reboot.8 halt.8 -LINKS= ${BINDIR}/reboot ${BINDIR}/halt - -afterinstall: - ${MINSTALL} boot_hp300.0 ${DESTDIR}${MANDIR}8/hp300/boot.0 - ${MINSTALL} boot_i386.0 ${DESTDIR}${MANDIR}8/i386/boot.0 - ${MINSTALL} boot_sparc.0 ${DESTDIR}${MANDIR}8/sparc/boot.0 - ${MINSTALL} boot_tahoe.0 ${DESTDIR}${MANDIR}8/tahoe/boot.0 - ${MINSTALL} boot_vax.0 ${DESTDIR}${MANDIR}8/vax/boot.0 - -.include -.include diff --git a/reboot.tproj/Makefile.postamble b/reboot.tproj/Makefile.postamble deleted file mode 100644 index 4424c4c..0000000 --- a/reboot.tproj/Makefile.postamble +++ /dev/null @@ -1,5 +0,0 @@ -after_install:: - $(LN) $(INSTALLED_PRODUCTS) $(DSTROOT)$(INSTALLDIR)/halt - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 reboot.8 $(DSTROOT)/usr/share/man/man8/ - ln $(DSTROOT)/usr/share/man/man8/reboot.8 $(DSTROOT)/usr/share/man/man8/halt.8 diff --git a/reboot.tproj/Makefile.preamble b/reboot.tproj/Makefile.preamble deleted file mode 100644 index 618870c..0000000 --- a/reboot.tproj/Makefile.preamble +++ /dev/null @@ -1,3 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) -OTHER_OFILES = kextmanagerUser.o -# OTHER_CFLAGS += -O0 diff --git a/reboot.tproj/PB.project b/reboot.tproj/PB.project deleted file mode 100644 index f8ce3d8..0000000 --- a/reboot.tproj/PB.project +++ /dev/null @@ -1,43 +0,0 @@ -{ - APPCLASS = NSApplication; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (); - M_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (reboot.c); - OTHER_SOURCES = ( - Makefile.preamble, - Makefile, - Makefile.postamble, - Makefile.dist, - boot_hp300.8, - boot_i386.8, - boot_sparc.8, - boot_tahoe.8, - boot_vax.8, - reboot.8 - ); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_INSTALLDIR = /sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_MAINNIB = reboot; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_MAINNIB = reboot; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = reboot; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_MAINNIB = reboot; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/reboot.tproj/reboot.c b/reboot.tproj/reboot.c index 4282a1e..47e9046 100644 --- a/reboot.tproj/reboot.c +++ b/reboot.tproj/reboot.c @@ -58,8 +58,11 @@ static const char rcsid[] = #include #ifdef __APPLE__ +#include +#if !TARGET_OS_EMBEDDED #include "kextmanager.h" #include +#endif #include // allocate #include // task_self, etc #include // bootstrap @@ -68,7 +71,7 @@ static const char rcsid[] = void usage(void); u_int get_pageins(void); -#ifdef __APPLE__ +#if defined(__APPLE__) && !TARGET_OS_EMBEDDED int reserve_reboot(void); #endif @@ -128,6 +131,7 @@ main(int argc, char *argv[]) break; case 'q': qflag = 1; + howto |= RB_QUICK; break; case '?': default: @@ -145,7 +149,7 @@ main(int argc, char *argv[]) err(1, NULL); } -#ifdef __APPLE__ +#if defined(__APPLE__) && !TARGET_OS_EMBEDDED if (!lflag) { // shutdown(8) has already checked w/kextd if ((errno = reserve_reboot()) && !qflag) err(1, "couldn't lock for reboot"); @@ -153,7 +157,12 @@ main(int argc, char *argv[]) #endif if (qflag) { + #ifdef __APPLE__ + // launchd(8) handles reboot. This call returns NULL on success. + exit(reboot2(howto) == NULL ? EXIT_SUCCESS : EXIT_FAILURE); + #else /* __APPLE__ */ reboot(howto); + #endif /* __APPLE__ */ err(1, NULL); } @@ -282,7 +291,7 @@ get_pageins() return pageins; } -#ifdef __APPLE__ +#if defined(__APPLE__) && !TARGET_OS_EMBEDDED // XX this routine is also in shutdown.tproj; it would be nice to share #define WAITFORLOCK 1 diff --git a/sa.tproj/Makefile b/sa.tproj/Makefile index 21ee968..92573da 100644 --- a/sa.tproj/Makefile +++ b/sa.tproj/Makefile @@ -1,51 +1,7 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = sa - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = sa +Install_Dir = /usr/sbin CFILES = main.c pdb.c usrdb.c +MANPAGES = sa.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble extern.h pathnames.h \ - sa.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I$(NEXT_ROOT)/System/Library/System.framework/\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd\ - -I$(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders/bsd - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/sa.tproj/Makefile.postamble b/sa.tproj/Makefile.postamble deleted file mode 100644 index 864cfa1..0000000 --- a/sa.tproj/Makefile.postamble +++ /dev/null @@ -1,104 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = 4555 - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man8 - install -c -m 444 sa.8 $(DSTROOT)/usr/share/man/man8/sa.8 diff --git a/sa.tproj/Makefile.preamble b/sa.tproj/Makefile.preamble deleted file mode 100644 index a4606c6..0000000 --- a/sa.tproj/Makefile.preamble +++ /dev/null @@ -1,140 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) - -AFTER_INSTALL += install-man-page - diff --git a/sa.tproj/PB.project b/sa.tproj/PB.project deleted file mode 100644 index 0158f5a..0000000 --- a/sa.tproj/PB.project +++ /dev/null @@ -1,26 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - HEADERSEARCH = ("$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd"); - OTHER_LINKED = (main.c, pdb.c, usrdb.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, sa.8, extern.h, pathnames.h); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_COMPILEROPTIONS = "-DKERNEL_PRIVATE"; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_INSTALLDIR = /bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = sa; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Library/Executables; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/sadc.tproj/Makefile b/sadc.tproj/Makefile index f5649e6..f9fbd4f 100644 --- a/sadc.tproj/Makefile +++ b/sadc.tproj/Makefile @@ -1,54 +1,24 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = sadc - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = sadc +Install_Dir = /usr/lib/sa HFILES = sadc.h - CFILES = sadc.c +MANPAGES = sa1.8 sa2.8 sadc.8 OTHERSRCS = Makefile.preamble Makefile Makefile.postamble sa1.8 sa1.sh\ sa2.8 sa2.sh sadc.8 +Extra_CC_Flags = -I. +Extra_Frameworks = -framework CoreFoundation -framework IOKit -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/lib/sa -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - -FRAMEWORKS = -framework CoreFoundation -framework IOKit - -PROJECT_HEADERS = sadc.h - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.postamble +Install_Program_Mode = 04555 --include Makefile.dependencies +after_install: + $(INSTALL_DIRECTORY) $(DSTROOT)/private/var/log/sa + $(INSTALL_DIRECTORY) $(DSTROOT)/$(Install_Dir) + $(INSTALL_FILE) sa1.sh $(DSTROOT)$(Install_Dir)/sa1 + $(CHMOD) 0555 $(DSTROOT)$(Install_Dir)/sa1 + $(INSTALL_FILE) sa2.sh $(DSTROOT)$(Install_Dir)/sa2 + $(CHMOD) 0555 $(DSTROOT)$(Install_Dir)/sa2 diff --git a/sadc.tproj/Makefile.postamble b/sadc.tproj/Makefile.postamble deleted file mode 100644 index e7b87a9..0000000 --- a/sadc.tproj/Makefile.postamble +++ /dev/null @@ -1,131 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) - -WARNING_CFLAGS = -Wall - -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -INSTALL_AS_USER = root -INSTALL_PERMISSIONS = 4555 -INSTALLDIR = /usr/lib/sa -LOGDIR = /private/var/log/sa -SHAREDIR = /usr/share -MANDIR = $(SHAREDIR)/man/man8 - - -sa1: sa1.sh - $(CP) sa1.sh ${SYM_DIR}/sa1 - -sa2: sa2.sh - $(CP) sa2.sh ${SYM_DIR}/sa2 - -install-shell-scripts: - $(MKDIRS) $(DSTROOT)/$(LOGDIR) - $(MKDIRS) $(DSTROOT)/$(INSTALLDIR) - $(CP) -p ${SYM_DIR}/sa1 $(DSTROOT)$(INSTALLDIR)/sa1 - $(CHMOD) 555 $(DSTROOT)$(INSTALLDIR)/sa1 - $(CP) -p ${SYM_DIR}/sa2 $(DSTROOT)$(INSTALLDIR)/sa2 - $(CHMOD) 555 $(DSTROOT)$(INSTALLDIR)/sa2 - -install-man-pages: - $(MKDIRS) $(DSTROOT)$(MANDIR) - install -c -m 444 sadc.8 $(DSTROOT)$(MANDIR)/sadc.8 - install -c -m 444 sa1.8 $(DSTROOT)$(MANDIR)/sa1.8 - install -c -m 444 sa2.8 $(DSTROOT)$(MANDIR)/sa2.8 diff --git a/sadc.tproj/Makefile.preamble b/sadc.tproj/Makefile.preamble deleted file mode 100644 index 43409d1..0000000 --- a/sadc.tproj/Makefile.preamble +++ /dev/null @@ -1,143 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product - -BEFORE_INSTALL += sa1 sa2 - -# AFTER_INSTALL: targets to build after installing the product - -AFTER_INSTALL += install-shell-scripts install-man-pages - -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) diff --git a/sadc.tproj/PB.project b/sadc.tproj/PB.project deleted file mode 100644 index f81078b..0000000 --- a/sadc.tproj/PB.project +++ /dev/null @@ -1,38 +0,0 @@ -{ - "DYNAMIC_CODE_GEN" = YES; - FILESTABLE = { - FRAMEWORKS = ("CoreFoundation.framework", "IOKit.framework"); - FRAMEWORKSEARCH = (); - "H_FILES" = ("sadc.h"); - LIBRARYSEARCH = (); - "OTHER_LINKED" = ("sadc.c"); - "OTHER_SOURCES" = ( - "Makefile.preamble", - Makefile, - "Makefile.postamble", - "sa1.8", - "sa1.sh", - "sa2.8", - "sa2.sh", - "sadc.8" - ); - "PROJECT_HEADERS" = ("sadc.h"); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - "NEXTSTEP_BUILDTOOL" = "/usr/bin/gnumake"; - "NEXTSTEP_INSTALLDIR" = "/usr/lib/sa"; - "NEXTSTEP_JAVA_COMPILER" = "/usr/bin/javac"; - "NEXTSTEP_OBJCPLUS_COMPILER" = "/usr/bin/cc"; - "PDO_UNIX_BUILDTOOL" = "$NEXT_ROOT/Developer/bin/make"; - "PDO_UNIX_INSTALLDIR" = "/bin"; - "PDO_UNIX_JAVA_COMPILER" = "$(JDKBINDIR)/javac"; - "PDO_UNIX_OBJCPLUS_COMPILER" = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = sadc; - PROJECTTYPE = Tool; - PROJECTVERSION = "2.8"; - "WINDOWS_BUILDTOOL" = "$NEXT_ROOT/Developer/Executables/make"; - "WINDOWS_INSTALLDIR" = "/Library/Executables"; - "WINDOWS_JAVA_COMPILER" = "$(JDKBINDIR)/javac.exe"; - "WINDOWS_OBJCPLUS_COMPILER" = "$(DEVDIR)/gcc"; -} diff --git a/sar.tproj/Makefile b/sar.tproj/Makefile index e35a96a..e00833b 100644 --- a/sar.tproj/Makefile +++ b/sar.tproj/Makefile @@ -1,51 +1,10 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = sar - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = sar +Install_Dir = /usr/bin HFILES = sar.h - CFILES = sar.c +MANPAGES = sar.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble sar.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I. - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +Extra_CC_Flags = -I. -I../sadc.tproj --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/sar.tproj/Makefile.postamble b/sar.tproj/Makefile.postamble deleted file mode 100644 index 62d44ba..0000000 --- a/sar.tproj/Makefile.postamble +++ /dev/null @@ -1,110 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) - -WARNING_CFLAGS = -Wall -Wno-long-double - -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -SHAREDIR = /usr/share -MANDIR = $(SHAREDIR)/man/man1 - -install-man-pages: - $(MKDIRS) $(DSTROOT)$(MANDIR) - install -c -m 444 sar.1 $(DSTROOT)$(MANDIR)/sar.1 diff --git a/sar.tproj/Makefile.preamble b/sar.tproj/Makefile.preamble deleted file mode 100644 index 52be7f8..0000000 --- a/sar.tproj/Makefile.preamble +++ /dev/null @@ -1,140 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product - -AFTER_INSTALL += install-man-pages - -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) diff --git a/sar.tproj/PB.project b/sar.tproj/PB.project deleted file mode 100644 index a0a40f2..0000000 --- a/sar.tproj/PB.project +++ /dev/null @@ -1,27 +0,0 @@ -{ - "DYNAMIC_CODE_GEN" = YES; - FILESTABLE = { - FRAMEWORKS = ("Foundation.framework"); - HEADERSEARCH = ("."); - "H_FILES" = ("sar.h"); - "OTHER_LINKED" = ("sar.c"); - "OTHER_SOURCES" = ("Makefile.preamble", Makefile, "Makefile.postamble", "sar.1"); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - "NEXTSTEP_BUILDTOOL" = "/usr/bin/gnumake"; - "NEXTSTEP_INSTALLDIR" = "/usr/bin"; - "NEXTSTEP_JAVA_COMPILER" = "/usr/bin/javac"; - "NEXTSTEP_OBJCPLUS_COMPILER" = "/usr/bin/cc"; - "PDO_UNIX_BUILDTOOL" = "$NEXT_ROOT/Developer/bin/make"; - "PDO_UNIX_INSTALLDIR" = "/bin"; - "PDO_UNIX_JAVA_COMPILER" = "$(JDKBINDIR)/javac"; - "PDO_UNIX_OBJCPLUS_COMPILER" = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = sar; - PROJECTTYPE = Tool; - PROJECTVERSION = "2.8"; - "WINDOWS_BUILDTOOL" = "$NEXT_ROOT/Developer/Executables/make"; - "WINDOWS_INSTALLDIR" = "/Library/Executables"; - "WINDOWS_JAVA_COMPILER" = "$(JDKBINDIR)/javac.exe"; - "WINDOWS_OBJCPLUS_COMPILER" = "$(DEVDIR)/gcc"; -} diff --git a/sc_usage.tproj/Makefile b/sc_usage.tproj/Makefile index f50e9a5..f96a032 100644 --- a/sc_usage.tproj/Makefile +++ b/sc_usage.tproj/Makefile @@ -1,52 +1,17 @@ -# -# Generated by the Apple Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = sc_usage - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = sc_usage +Install_Dir = /usr/bin CFILES = sc_usage.c +MANPAGES = sc_usage.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble sc_usage.1\ - trace.codes - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -LIBS = -lcurses -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -HEADER_PATHS = -I$(NEXT_ROOT)/System/Library/System.framework/\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ - -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd\ - -I$(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/System.framework/PrivateHeaders/bsd - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make +Extra_LD_Flags = -lcurses --include Makefile.preamble +Extra_CC_Flags = -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders\ + -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd -include $(MAKEFILEDIR)/$(MAKEFILE) +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.postamble +after_install: + $(INSTALL_DIRECTORY) $(DSTROOT)/usr/share/misc + $(INSTALL_FILE) trace.codes $(DSTROOT)/usr/share/misc --include Makefile.dependencies diff --git a/sc_usage.tproj/Makefile.postamble b/sc_usage.tproj/Makefile.postamble deleted file mode 100644 index a9cbc8d..0000000 --- a/sc_usage.tproj/Makefile.postamble +++ /dev/null @@ -1,111 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - -ifeq "$(shell tconf --test TARGET_OS_EMBEDDED)" "YES" -OPTIMIZE_BUILD_CFLAGS = -O -endif - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = 4555 - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 sc_usage.1 $(DSTROOT)/usr/share/man/man1/sc_usage.1 - -after_install:: - install -d $(DSTROOT)/usr/share/misc - install -c -m 444 trace.codes $(DSTROOT)/usr/share/misc diff --git a/sc_usage.tproj/Makefile.preamble b/sc_usage.tproj/Makefile.preamble deleted file mode 100644 index a4606c6..0000000 --- a/sc_usage.tproj/Makefile.preamble +++ /dev/null @@ -1,140 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) - -AFTER_INSTALL += install-man-page - diff --git a/sc_usage.tproj/PB.project b/sc_usage.tproj/PB.project deleted file mode 100644 index 0a8d16d..0000000 --- a/sc_usage.tproj/PB.project +++ /dev/null @@ -1,26 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - HEADERSEARCH = ("$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/bsd"); - OTHER_LINKED = (sc_usage.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, sc_usage.1, trace.codes); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_COMPILEROPTIONS = "-DKERNEL_PRIVATE"; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_INSTALLDIR = /bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = sc_usage; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Library/Executables; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/shutdown.tproj/Makefile b/shutdown.tproj/Makefile index 2226b3d..5806a4b 100644 --- a/shutdown.tproj/Makefile +++ b/shutdown.tproj/Makefile @@ -1,53 +1,12 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = shutdown - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project= shutdown +Install_Dir = /sbin HFILES = pathnames.h - CFILES = shutdown.c -DEFSFILES = kextmanager.defs - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble Makefile.dist\ - shutdown.8 $(DEFSFILES) - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /sbin -WINDOWS_INSTALLDIR = /sbin -PDO_UNIX_INSTALLDIR = /sbin -LIBS = -lbsm -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - -FRAMEWORKS = -framework IOKit - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) +USERDEFS = kextmanager.defs +MANPAGES = shutdown.8 --include Makefile.postamble +Extra_Frameworks = -framework IOKit +Extra_LD_Flags = -lbsm --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/shutdown.tproj/Makefile.dist b/shutdown.tproj/Makefile.dist deleted file mode 100644 index 19122f2..0000000 --- a/shutdown.tproj/Makefile.dist +++ /dev/null @@ -1,9 +0,0 @@ -# @(#)Makefile 8.1 (Berkeley) 6/5/93 - -PROG= shutdown -MAN8= shutdown.0 -BINOWN= root -BINGRP= operator -BINMODE=4550 - -.include diff --git a/shutdown.tproj/Makefile.postamble b/shutdown.tproj/Makefile.postamble deleted file mode 100644 index 3e4dc90..0000000 --- a/shutdown.tproj/Makefile.postamble +++ /dev/null @@ -1,6 +0,0 @@ -INSTALL_AS_GROUP = operator # (probably want to set both of these) -INSTALL_PERMISSIONS = 0555 # If set, 'install' chmod's executable to this - -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 shutdown.8 $(DSTROOT)/usr/share/man/man8 diff --git a/shutdown.tproj/Makefile.preamble b/shutdown.tproj/Makefile.preamble deleted file mode 100644 index 618870c..0000000 --- a/shutdown.tproj/Makefile.preamble +++ /dev/null @@ -1,3 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) -OTHER_OFILES = kextmanagerUser.o -# OTHER_CFLAGS += -O0 diff --git a/shutdown.tproj/PB.project b/shutdown.tproj/PB.project deleted file mode 100644 index cde35ad..0000000 --- a/shutdown.tproj/PB.project +++ /dev/null @@ -1,32 +0,0 @@ -{ - APPCLASS = NSApplication; - FILESTABLE = { - FRAMEWORKS = (IOKit.framework); - H_FILES = (pathnames.h); - M_FILES = (); - OTHER_LIBS = (bsm); - OTHER_LINKED = (shutdown.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, Makefile.dist, shutdown.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_INSTALLDIR = /sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_MAINNIB = shutdown; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_MAINNIB = shutdown; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = shutdown; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_MAINNIB = shutdown; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/sync.tproj/Makefile b/sync.tproj/Makefile index 9d45673..51cb40e 100644 --- a/sync.tproj/Makefile +++ b/sync.tproj/Makefile @@ -1,50 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = sync - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = sync +Install_Dir = /bin CFILES = sync.c +MANPAGES = sync.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.dist sync.8 Makefile.postamble - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /bin -WINDOWS_INSTALLDIR = /bin -PDO_UNIX_INSTALLDIR = /bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/sync.tproj/Makefile.dist b/sync.tproj/Makefile.dist deleted file mode 100644 index b3f08be..0000000 --- a/sync.tproj/Makefile.dist +++ /dev/null @@ -1,6 +0,0 @@ -# @(#)Makefile 8.1 (Berkeley) 5/31/93 - -PROG= sync -MAN8= sync.0 - -.include diff --git a/sync.tproj/Makefile.postamble b/sync.tproj/Makefile.postamble deleted file mode 100644 index 1ad0185..0000000 --- a/sync.tproj/Makefile.postamble +++ /dev/null @@ -1,3 +0,0 @@ -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 sync.8 $(DSTROOT)/usr/share/man/man8 diff --git a/sync.tproj/Makefile.preamble b/sync.tproj/Makefile.preamble deleted file mode 100644 index d5059b1..0000000 --- a/sync.tproj/Makefile.preamble +++ /dev/null @@ -1,2 +0,0 @@ -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/sync.tproj/PB.project b/sync.tproj/PB.project deleted file mode 100644 index 980a04c..0000000 --- a/sync.tproj/PB.project +++ /dev/null @@ -1,34 +0,0 @@ -{ - APPCLASS = NSApplication; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (); - M_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (sync.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.dist, sync.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = "/tmp/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_MAINNIB = sync; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_INSTALLDIR = /bin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_MAINNIB = sync; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = sync; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_INSTALLDIR = /bin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_MAINNIB = sync; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/sysctl.tproj/Makefile b/sysctl.tproj/Makefile index cd1ef2d..ee35679 100644 --- a/sysctl.tproj/Makefile +++ b/sysctl.tproj/Makefile @@ -1,48 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = sysctl - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = sysctl +Install_Dir = /usr/sbin CFILES = sysctl.c +MANPAGES = sysctl.8 sysctl.conf.5 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble sysctl.8 sysctl.conf.5 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/sysctl.tproj/Makefile.postamble b/sysctl.tproj/Makefile.postamble deleted file mode 100644 index 72a3197..0000000 --- a/sysctl.tproj/Makefile.postamble +++ /dev/null @@ -1,115 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app) -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target - - -# Change defaults assumed by the standard app makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if -# you would like changes to them to invalidate previous builds. The project -# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build. -#MAKEFILES = Makefile - -# Optimization flag passed to compiler: -#OPTIMIZATION_CFLAG = -O - -# Flags always passed to compiler: -#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall - -# Flags passed to compiler in normal 'app' compiles: -#NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG) - -# Flags passed to compiler in 'debug' compiles: -#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG - -# Flags passed to compiler in 'profile' compiles -#PROFILE_CFLAGS = $(COMMON_CFLAGS) -pg $(OPTIMIZATION_CFLAG) -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User to chown app to -#INSTALL_AS_GROUP = wheel # Group to chgrp app to -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for bundles, apps with bundles, and apps without bundles, -# respectively. -#RELOCATABLE_STRIP_OPTS = -x -u -#DYLD_APP_STRIP_OPTS = -A -n -#APP_STRIP_OPTS = -#TOOL_STRIP_OPTS = -#LIBRARY_STRIP_OPTS = -x -S # Note: -S strips debugging symbols -# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but -# developers doing their own dynamic loading should set this to -# $(DYLD_APP_STRIP_OPTS)). - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Typical -# user-defined rules are before_install and after_install (please don't -# redefine things like install or app, as they are owned by the top-level -# Makefile API), which are rules that get invoked before and after the install -# target runs. Such rules should be specified with the '::' syntax rather than -# a single colon. - -after_install: - mkdir -p "$(DSTROOT)/usr/share/man/man8" - install -c -m 644 sysctl.8 "$(DSTROOT)/usr/share/man/man8/sysctl.8" - mkdir -p "$(DSTROOT)/usr/share/man/man5" - install -c -m 644 sysctl.conf.5 "$(DSTROOT)/usr/share/man/man5/sysctl.conf.5" diff --git a/sysctl.tproj/Makefile.preamble b/sysctl.tproj/Makefile.preamble deleted file mode 100644 index 3a44cfd..0000000 --- a/sysctl.tproj/Makefile.preamble +++ /dev/null @@ -1,114 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = -# Additional libs to link apps against ('profile' target) -OTHER_PROF_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -AFTER_INSTALL = after_install diff --git a/sysctl.tproj/PB.project b/sysctl.tproj/PB.project deleted file mode 100644 index b4c60b3..0000000 --- a/sysctl.tproj/PB.project +++ /dev/null @@ -1,41 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (); - H_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (sysctl.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, sysctl.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = sysctl; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/sysctl.tproj/pathconf.c b/sysctl.tproj/pathconf.c new file mode 100644 index 0000000..dc7aecc --- /dev/null +++ b/sysctl.tproj/pathconf.c @@ -0,0 +1,252 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/* + * Copyright (c) 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char copyright[] = +"@(#) Copyright (c) 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +static char sccsid[] = "@(#)pathconf.c 8.1 (Berkeley) 6/6/93"; +#endif /* not lint */ + +#include +#include +#include + +#include +#include +#include +#include + +#define PC_NAMES { \ + { 0, 0 }, \ + { "link_max", CTLTYPE_INT }, \ + { "max_canon", CTLTYPE_INT }, \ + { "max_input", CTLTYPE_INT }, \ + { "name_max", CTLTYPE_INT }, \ + { "path_max", CTLTYPE_INT }, \ + { "pipe_buf", CTLTYPE_INT }, \ + { "chown_restricted", CTLTYPE_INT }, \ + { "no_trunc", CTLTYPE_INT }, \ + { "vdisable", CTLTYPE_INT }, \ +} +#define PC_MAXID 10 + +struct ctlname pcnames[] = PC_NAMES; +char names[BUFSIZ]; + +struct list { + struct ctlname *list; + int size; +}; +struct list pclist = { pcnames, PC_MAXID }; + +int Aflag, aflag, nflag, wflag, stdinflag; + +int +main(argc, argv) + int argc; + char *argv[]; +{ + extern char *optarg; + extern int optind; + char *path; + int ch; + + while ((ch = getopt(argc, argv, "Aan")) != EOF) { + switch (ch) { + + case 'A': + Aflag = 1; + break; + + case 'a': + aflag = 1; + break; + + case 'n': + nflag = 1; + break; + + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc == 0) + usage(); + path = *argv++; + if (strcmp(path, "-") == 0) + stdinflag = 1; + argc--; + if (Aflag || aflag) { + listall(path, &pclist); + exit(0); + } + if (argc == 0) + usage(); + while (argc-- > 0) + parse(path, *argv, 1); + exit(0); +} + +/* + * List all variables known to the system. + */ +listall(path, lp) + char *path; + struct list *lp; +{ + int lvl2; + + if (lp->list == 0) + return; + for (lvl2 = 0; lvl2 < lp->size; lvl2++) { + if (lp->list[lvl2].ctl_name == 0) + continue; + parse(path, lp->list[lvl2].ctl_name, Aflag); + } +} + +/* + * Parse a name into an index. + * Lookup and print out the attribute if it exists. + */ +parse(pathname, string, flags) + char *pathname; + char *string; + int flags; +{ + int indx, value; + char *bufp, buf[BUFSIZ]; + + bufp = buf; + snprintf(buf, BUFSIZ, "%s", string); + if ((indx = findname(string, "top", &bufp, &pclist)) == -1) + return; + if (bufp) { + fprintf(stderr, "name %s in %s is unknown\n", *bufp, string); + return; + } + if (stdinflag) + value = fpathconf(0, indx); + else + value = pathconf(pathname, indx); + if (value == -1) { + if (flags == 0) + return; + switch (errno) { + case ENOTSUP: + fprintf(stderr, "%s: value is not available\n", string); + return; + case ENOTDIR: + fprintf(stderr, "%s: specification is incomplete\n", + string); + return; + case ENOMEM: + fprintf(stderr, "%s: type is unknown to this program\n", + string); + return; + default: + perror(string); + return; + } + } + if (!nflag) + fprintf(stdout, "%s = ", string); + fprintf(stdout, "%d\n", value); +} + +/* + * Scan a list of names searching for a particular name. + */ +findname(string, level, bufp, namelist) + char *string; + char *level; + char **bufp; + struct list *namelist; +{ + char *name; + int i; + + if (namelist->list == 0 || (name = strsep(bufp, ".")) == NULL) { + fprintf(stderr, "%s: incomplete specification\n", string); + return (-1); + } + for (i = 0; i < namelist->size; i++) + if (namelist->list[i].ctl_name != NULL && + strcmp(name, namelist->list[i].ctl_name) == 0) + break; + if (i == namelist->size) { + fprintf(stderr, "%s level name %s in %s is invalid\n", + level, name, string); + return (-1); + } + return (i); +} + +usage() +{ + + (void)fprintf(stderr, "usage:\t%s\n\t%s\n\t%s\n", + "pathname [-n] variable ...", + "pathname [-n] -a", "pathname [-n] -A"); + exit(1); +} diff --git a/update.tproj/Makefile b/update.tproj/Makefile index e69df73..88540fe 100644 --- a/update.tproj/Makefile +++ b/update.tproj/Makefile @@ -1,51 +1,14 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = update - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = update +Install_Dir = /usr/sbin CFILES = update.c -HFILES = - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble update.8 \ - com.apple.update.plist update.sb - -FRAMEWORKS = - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble +MANPAGES = update.8 +LAUNCHD_PLISTS = com.apple.update.plist -include $(MAKEFILEDIR)/$(MAKEFILE) +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make --include Makefile.postamble +SANDBOX = "$(DSTROOT)/usr/share/sandbox" --include Makefile.dependencies +after_install: + $(INSTALL_DIRECTORY) $(SANDBOX) + $(INSTALL_FILE) update.sb $(SANDBOX) diff --git a/update.tproj/Makefile.postamble b/update.tproj/Makefile.postamble deleted file mode 100644 index df90f1e..0000000 --- a/update.tproj/Makefile.postamble +++ /dev/null @@ -1,125 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app) -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target - - -# Change defaults assumed by the standard app makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if -# you would like changes to them to invalidate previous builds. The project -# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build. -#MAKEFILES = Makefile - -# Optimization flag passed to compiler: -#OPTIMIZATION_CFLAG = -O - -# Flags always passed to compiler: -#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall - -# Flags passed to compiler in normal 'app' compiles: -#NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG) - -# Flags passed to compiler in 'debug' compiles: -#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG - -# Flags passed to compiler in 'profile' compiles -#PROFILE_CFLAGS = $(COMMON_CFLAGS) -pg $(OPTIMIZATION_CFLAG) -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User to chown app to -#INSTALL_AS_GROUP = wheel # Group to chgrp app to -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for bundles, apps with bundles, and apps without bundles, -# respectively. -#RELOCATABLE_STRIP_OPTS = -x -u -#DYLD_APP_STRIP_OPTS = -A -n -#APP_STRIP_OPTS = -#TOOL_STRIP_OPTS = -#LIBRARY_STRIP_OPTS = -x -S # Note: -S strips debugging symbols -# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but -# developers doing their own dynamic loading should set this to -# $(DYLD_APP_STRIP_OPTS)). - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Typical -# user-defined rules are before_install and after_install (please don't -# redefine things like install or app, as they are owned by the top-level -# Makefile API), which are rules that get invoked before and after the install -# target runs. Such rules should be specified with the '::' syntax rather than -# a single colon. - -install-man-page: - mkdir -p "$(DSTROOT)/usr/share/man/man8" - install -c -m 644 update.8 "$(DSTROOT)/usr/share/man/man8/update.8" - -LAUNCHD_PLIST_DIR = $(DSTROOT)/System/Library/LaunchDaemons -LAUNCHD_PLIST = com.apple.update.plist -SANDBOX = "$(DSTROOT)/usr/share/sandbox" - -install-launchd-plist: - install -d $(LAUNCHD_PLIST_DIR) - install -c -m 644 $(LAUNCHD_PLIST) $(LAUNCHD_PLIST_DIR)/$(LAUNCHD_PLIST) - -install-sb: - install -d $(SANDBOX) - install -c -m 644 update.sb $(SANDBOX) diff --git a/update.tproj/Makefile.preamble b/update.tproj/Makefile.preamble deleted file mode 100644 index 94cd779..0000000 --- a/update.tproj/Makefile.preamble +++ /dev/null @@ -1,114 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = -# Additional libs to link apps against ('profile' target) -OTHER_PROF_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - -AFTER_INSTALL = install-man-page install-launchd-plist install-sb diff --git a/update.tproj/PB.project b/update.tproj/PB.project deleted file mode 100644 index f62d0fc..0000000 --- a/update.tproj/PB.project +++ /dev/null @@ -1,42 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (update.c); - H_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, update.8, com.apple.update.plist); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - FRAMEWORKS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = update; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/vifs.tproj/Makefile b/vifs.tproj/Makefile index 4b15f5f..7627118 100644 --- a/vifs.tproj/Makefile +++ b/vifs.tproj/Makefile @@ -1,42 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = vifs - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = vifs +Install_Dir = /usr/sbin CFILES = vifs.c +MANPAGES = vifs.8 -OTHERSRCS = Makefile Makefile.postamble vifs.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/vifs.tproj/Makefile.postamble b/vifs.tproj/Makefile.postamble deleted file mode 100644 index da87139..0000000 --- a/vifs.tproj/Makefile.postamble +++ /dev/null @@ -1,3 +0,0 @@ -after_install:: - mkdir -p $(DSTROOT)/usr/share/man/man8 - cp vifs.8 $(DSTROOT)/usr/share/man/man8/ diff --git a/vifs.tproj/PB.project b/vifs.tproj/PB.project deleted file mode 100644 index 5f5712f..0000000 --- a/vifs.tproj/PB.project +++ /dev/null @@ -1,41 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (vifs.c); - H_FILES = (); - OTHER_LIBS = (); - OTHER_LINKED = (); - OTHER_SOURCES = (Makefile, vifs.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = vifs; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/vipw.tproj/Makefile b/vipw.tproj/Makefile index 7dd9aea..88c4d20 100644 --- a/vipw.tproj/Makefile +++ b/vipw.tproj/Makefile @@ -1,52 +1,8 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = vipw - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = vipw +Install_Dir = /usr/sbin HFILES = pw_util.h - CFILES = pw_util.c vipw.c +MANPAGES = vipw.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble vipw.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -WINDOWS_INSTALLDIR = /usr/sbin -PDO_UNIX_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - -PROJECT_HEADERS = pw_util.h - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/vipw.tproj/Makefile.postamble b/vipw.tproj/Makefile.postamble deleted file mode 100644 index d290d54..0000000 --- a/vipw.tproj/Makefile.postamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app) -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# ENGLISH - boolean flag set iff $(LANGUAGE) = "English" -# JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese" -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder that output Makefile -# APPICON - application icon file -# DOCICONS - dock icon files -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target - - -# Change defaults assumed by the standard app makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if -# you would like changes to them to invalidate previous builds. The project -# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build. -#MAKEFILES = Makefile - -# Optimization flag passed to compiler: -#OPTIMIZATION_CFLAG = -O - -# Flags always passed to compiler: -#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall - -# Flags passed to compiler in normal 'app' compiles: -#NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG) - -# Flags passed to compiler in 'debug' compiles: -#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG - -# Flags passed to compiler in 'profile' compiles -#PROFILE_CFLAGS = $(COMMON_CFLAGS) -pg $(OPTIMIZATION_CFLAG) -DPROFILE - -# Flags passed to yacc -#YFLAGS = -d - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root # User to chown app to -#INSTALL_AS_GROUP = wheel # Group to chgrp app to -#INSTALL_PERMISSIONS = # If set, 'install' chmod's executable to this - -# Options to strip for bundles, apps with bundles, and apps without bundles, -# respectively. -#RELOCATABLE_STRIP_OPTS = -x -u -#DYLD_APP_STRIP_OPTS = -A -n -#APP_STRIP_OPTS = -#TOOL_STRIP_OPTS = -#LIBRARY_STRIP_OPTS = -x -S # Note: -S strips debugging symbols -# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but -# developers doing their own dynamic loading should set this to -# $(DYLD_APP_STRIP_OPTS)). - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Typical -# user-defined rules are before_install and after_install (please don't -# redefine things like install or app, as they are owned by the top-level -# Makefile API), which are rules that get invoked before and after the install -# target runs. Such rules should be specified with the '::' syntax rather than -# a single colon. - -after_install:: - $(MKDIRS) $(DSTROOT)/usr/share/man/man8 - $(CP) vipw.8 $(DSTROOT)/usr/share/man/man8/ diff --git a/vipw.tproj/Makefile.preamble b/vipw.tproj/Makefile.preamble deleted file mode 100644 index e371f9d..0000000 --- a/vipw.tproj/Makefile.preamble +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble Template -# Copyright 1993, NeXT Computer, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags here. To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = - -BUNDLELDFLAGS = # use iff project is a bundle -PALETTELDFLAGS = # use iff project is a palette - -## Specify which headers in this project should be published to the outside -## world in a flat header directory given in PUBLIC_HEADER_DIR (which will be -## prepended by DSTROOT, below. Any subset of these public headers can be -## precompiled automatically after installation, with extra user-defined flags. -PUBLIC_HEADER_DIR = -PUBLIC_HEADERS = -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -## Configure what is linked in at each level here. Libraries are only used in -## the final 'app' linking step. Final 'app' linking is only done via the -## 'app', 'debug', and 'profile' targets when they are invoked for -## the top-level app. - -# Additional relocatables to be linked in at this level -OTHER_OFILES = -# Additional libs to link apps against ('app' target) -#OTHER_LIBS = -# Additional libs to link apps against ('debug' target) -OTHER_DEBUG_LIBS = -# Additional libs to link apps against ('profile' target) -OTHER_PROF_LIBS = - -# More 'app' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_LIBS = -# More 'debug' libraries when $(JAPANESE) = "YES" -OTHER_JAPANESE_DEBUG_LIBS = -# More 'profile' libs when $(JAPANESE) = "YES" -OTHER_JAPANESE_PROF_LIBS = - -# If this is a bundle, and you *know* the enclosing application will not -# be linking with a library which you require in your bundle code, then -# mention it here so that it gets linked into the bundle. Note that this -# is wasteful but sometimes necessary. -BUNDLE_LIBS = - -## Configure how things get built here. Additional dependencies, sourcefiles, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = -# Precompiled headers to be built before any compilation occurs (e.g., draw.p) -PRECOMPS = - -# Targets to be built before installation -OTHER_INSTALL_DEPENDS = - -# A virtual root directory (other than /) to be prepended to the $(INSTALLDIR) -# passed from ProjectBuilder. -DSTROOT = - -# Set the following to "YES" if you want the old behavior of recursively -# cleaning all nested subprojects during 'make clean'. -CLEAN_ALL_SUBPROJECTS = - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -OTHER_GENERATED_OFILES = $(VERS_OFILE) - diff --git a/vipw.tproj/PB.project b/vipw.tproj/PB.project deleted file mode 100644 index f4e6310..0000000 --- a/vipw.tproj/PB.project +++ /dev/null @@ -1,41 +0,0 @@ -{ - DOCICONFILES = (); - FILESTABLE = { - C_FILES = (); - H_FILES = (pw_util.h); - OTHER_LIBS = (); - OTHER_LINKED = (pw_util.c, vipw.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, vipw.8); - PRECOMPILED_HEADERS = (); - PROJECT_HEADERS = (pw_util.h); - PUBLIC_HEADERS = (); - SUBPROJECTS = (); - }; - GENERATEMAIN = YES; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - NEXTSTEP_BUILDDIR = ""; - NEXTSTEP_BUILDTOOL = /bin/make; - NEXTSTEP_COMPILEROPTIONS = ""; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_LINKEROPTIONS = ""; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDDIR = ""; - PDO_UNIX_BUILDTOOL = /bin/make; - PDO_UNIX_COMPILEROPTIONS = ""; - PDO_UNIX_INSTALLDIR = /usr/sbin; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_LINKEROPTIONS = ""; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = vipw; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDDIR = ""; - WINDOWS_BUILDTOOL = /bin/make; - WINDOWS_COMPILEROPTIONS = ""; - WINDOWS_INSTALLDIR = /usr/sbin; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_LINKEROPTIONS = ""; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/vm_stat.tproj/Makefile b/vm_stat.tproj/Makefile index 943af74..7d6e4c3 100644 --- a/vm_stat.tproj/Makefile +++ b/vm_stat.tproj/Makefile @@ -1,51 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = vm_stat - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = vm_stat +Install_Dir = /usr/bin CFILES = vm_stat.c +MANPAGES = vm_stat.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble m.template\ - h.template vm_stat.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/vm_stat.tproj/Makefile.postamble b/vm_stat.tproj/Makefile.postamble deleted file mode 100644 index ee7c567..0000000 --- a/vm_stat.tproj/Makefile.postamble +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -after_install: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 vm_stat.1 $(DSTROOT)/usr/share/man/man1 diff --git a/vm_stat.tproj/Makefile.preamble b/vm_stat.tproj/Makefile.preamble deleted file mode 100644 index c1624b4..0000000 --- a/vm_stat.tproj/Makefile.preamble +++ /dev/null @@ -1,137 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) diff --git a/vm_stat.tproj/PB.project b/vm_stat.tproj/PB.project deleted file mode 100644 index 7a909f4..0000000 --- a/vm_stat.tproj/PB.project +++ /dev/null @@ -1,25 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - OTHER_LINKED = (vm_stat.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, m.template, h.template); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/tmp/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_INSTALLDIR = /bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = vm_stat; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Library/Executables; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/vm_stat.tproj/h.template b/vm_stat.tproj/h.template deleted file mode 100644 index f3c1b04..0000000 --- a/vm_stat.tproj/h.template +++ /dev/null @@ -1,11 +0,0 @@ -$$ -/* $FILENAME$ created by $USERNAME$ on $DATE$ */ - -#import - -@interface $FILENAMESANSEXTENSION$ : NSObject -{ - -} - -@end diff --git a/vm_stat.tproj/m.template b/vm_stat.tproj/m.template deleted file mode 100644 index 1216fe5..0000000 --- a/vm_stat.tproj/m.template +++ /dev/null @@ -1,18 +0,0 @@ -$$ Lines starting with $$ are not inserted into newly created files -$$ The following substitutions are made: -$$ -$$ $FILENAME$ e.g. foo.m -$$ $FILENAMESANSEXTENSION$ e.g. foo -$$ $DIRECTORY$ e.g. /tmp/MyNewApp -$$ $PROJECTNAME$ e.g. MyNewApp -$$ $SUBPROJECTNAME$ e.g. TheGoodPart.subproj -$$ $USERNAME$ e.g. mwagner -$$ $DATE$ e.g. Jan-1-1994 -$$ -/* $FILENAME$ created by $USERNAME$ on $DATE$ */ - -#import "$FILENAMESANSEXTENSION$.h" - -@implementation $FILENAMESANSEXTENSION$ - -@end diff --git a/zdump.tproj/Makefile b/zdump.tproj/Makefile index d704d7f..69179c2 100644 --- a/zdump.tproj/Makefile +++ b/zdump.tproj/Makefile @@ -1,48 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = zdump - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = zdump +Install_Dir = /usr/sbin CFILES = zdump.c +MANPAGES = zdump.8 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble zdump.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/zdump.tproj/Makefile.postamble b/zdump.tproj/Makefile.postamble deleted file mode 100644 index 566ba1b..0000000 --- a/zdump.tproj/Makefile.postamble +++ /dev/null @@ -1,129 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0) -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES - # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A - # This should be incremented as your API changes. -#COMPATIBILITY_PROJECT_VERSION = 1 - # This should be incremented as your API grows. -#CURRENT_PROJECT_VERSION = 1 - # Defaults to using the "vers_string" hack. - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wmost -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S - # for .a archives -#DYNAMIC_STRIP_OPTS = -S - # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -# Note: on MS Windows, executables, have an extension, so rules and dependencies -# for generated tools should use $(EXECUTABLE_EXT) on the end. - - -VPATH += :../zic.tproj - -after_install: - mkdir -p $(DSTROOT)/usr/share/man/man8 - install -c -m 444 zdump.8 $(DSTROOT)/usr/share/man/man8 diff --git a/zdump.tproj/Makefile.preamble b/zdump.tproj/Makefile.preamble deleted file mode 100644 index b1c570c..0000000 --- a/zdump.tproj/Makefile.preamble +++ /dev/null @@ -1,131 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# If you do not want any headers exported before compilations begin, -# uncomment the following line. This can be a big time saver. -#SKIP_EXPORTING_HEADERS = YES - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set these two macros if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the public header directory -# on the specified public header files with the specified additional flags. -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -# Set this for library projects if you want to publish header files. If your -# app or tool project exports headers Don't -# include $(DSTROOT); this is added for you automatically. -PUBLIC_HEADER_DIR = -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Set this for dynamic library projects on platforms where code which references -# a dynamic library must link against an import library (i.e., Windows NT) -# Don't include $(DSTROOT); this is added for you automatically. -IMPORT_LIBRARY_DIR = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Uncomment this to produce a static archive-style (.a) library -#LIBRARY_STYLE = STATIC - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = -# .x files that should have rpcgen run on them -RPCFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - -OTHER_OFILES = ialloc.o diff --git a/zdump.tproj/PB.project b/zdump.tproj/PB.project deleted file mode 100644 index cd4da71..0000000 --- a/zdump.tproj/PB.project +++ /dev/null @@ -1,27 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (); - OTHER_LINKED = (zdump.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, zdump.8); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = zdump; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/zic.tproj/Arts.htm b/zic.tproj/Arts.htm new file mode 100644 index 0000000..e8f9539 --- /dev/null +++ b/zic.tproj/Arts.htm @@ -0,0 +1,178 @@ + + + + +Time and the Arts + + +

Time and the Arts

+

+

+@(#)Arts.htm 7.18 +
+

+
+Data on recordings of "Save That Time," Russ Long, Serrob Publishing, BMI:
+--------------------------------------------------------------------------
+Artist:		Karrin Allyson
+CD:		I Didn't Know About You
+Copyright Date:	1993
+Label:		Concord Jazz, Inc.
+ID:		CCD-4543
+Track Time:	3:44
+Personnel:	Karrin Allyson, vocal
+		Russ Long, piano
+		Gerald Spaits, bass
+		Todd Strait, drums
+Notes:		CD notes "additional lyric by Karrin Allyson;
+		arranged by Russ Long and Karrin Allyson"
+ADO Rating:	1 star
+AMG Rating:	3.5 stars
+Penguin Rating:	3.5 stars
+--------------------------------------------------------------------------
+Artist:		Kevin Mahogany
+CD:		Double Rainbow
+Copyright Date:	1993
+Label:		Enja Records
+ID:		ENJ-7097 2
+Track Time:	6:27
+Personnel:	Kevin Mahogany, vocal
+		Kenny Barron, piano
+		Ray Drummond, bss
+		Ralph Moore, tenor saxophone
+		Lewis Nash, drums
+ADO Rating:	1.5 stars
+AMG Rating:	unrated
+Penguin Rating:	3 stars
+--------------------------------------------------------------------------
+Artist:		Joe Williams
+CD:		Here's to Life
+Copyright Date:	1994
+Label:		Telarc International Corporation
+ID:		CD-83357
+Track Time:	3:58
+Personnel:	Joe Williams, vocal
+		The Robert Farnon [39 piece] Orchestra
+Notes:		On-line information and samples available at
+		http://telarc.dmn.com/telarc/releases/release.req?ID=83357
+ADO Rating:	black dot
+AMG Rating:	2 stars
+Penguin Rating:	3 stars
+--------------------------------------------------------------------------
+Artist:		Charles Fambrough
+CD:		Keeper of the Spirit
+Copyright Date:	1995
+Label:		AudioQuest Music
+ID:		AQ-CD1033
+Track Time:	7:07
+Personnel:	Charles Fambrough, bass
+		Joel Levine, tenor recorder
+		Edward Simon, piano
+		Lenny White, drums
+		Marion Simon, percussion
+Notes:		On-line information and samples available at
+		http://wwmusic.com/~music/audioq/rel/1033.html
+ADO Rating:	2 stars
+AMG Rating:	unrated
+Penguin Rating:	3 stars
+==========================================================================
+Also of note:
+--------------------------------------------------------------------------
+Artist:		Holly Cole Trio
+CD:		Blame It On My Youth
+Copyright Date:	1992
+Label:		Manhattan
+ID:		CDP 7 97349 2
+Total Time:	37:45
+Personnel:	Holly Cole, voice
+		Aaron Davis, piano
+		David Piltch, string bass
+Notes:		Lyrical reference to "Eastern Standard Time" in
+			Tom Waits' "Purple Avenue"
+ADO Rating:	2.5 stars
+AMG Rating:	2 stars
+Penguin Rating:	unrated
+--------------------------------------------------------------------------
+Artist:		Milt Hinton
+CD:		Old Man Time
+Copyright Date:	1990
+Label:		Chiaroscuro
+ID:		CR(D) 310
+Total Time:	149:38 (two CDs)
+Personnel:	Milt Hinton, bass
+		Doc Cheatham, Dizzy Gillespie, Clark Terry, trumpet
+		Al Grey, trombone
+		Eddie Barefield, Joe Camel (Flip Phillips), Buddy Tate,
+			clarinet and saxophone
+		John Bunch, Red Richards, Norman Simmons, Derek Smith,
+			Ralph Sutton, piano
+		Danny Barker, Al Casey, guitar
+		Gus Johnson, Gerryck King, Bob Rosengarden, Jackie Williams,
+			drums
+		Lionel Hampton, vibraphone
+		Cab Calloway, Joe Williams, vocal
+		Buck Clayton, arrangements
+Notes:		tunes include Old Man Time, Time After Time,
+			Sometimes I'm Happy,
+			A Hot Time in the Old Town Tonight,
+			Four or Five Times, Now's the Time,
+			Time on My Hands, This Time It's Us,
+			and Good Time Charlie
+		On-line samples available at
+		http://www.globalmusic.com/labels/chiaroscuro/chiaro_cd_gallery.html
+ADO Rating:	3 stars
+AMG Rating:	4.5 stars
+Penguin Rating:	3 stars
+--------------------------------------------------------------------------
+Artist:		Paul Broadbent
+CD:		Pacific Standard Time
+Copyright Date:	1995
+Label:		Concord Jazz, Inc.
+ID:		CCD-4664
+Total Time:	62:42
+Personnel:	Paul Broadbent, piano
+		Putter Smith, Bass
+		Frank Gibson, Jr., drums
+Notes:		The CD cover features an analemma for equation of time fans
+ADO Rating:	1 star
+AMG Rating:	3 stars
+Penguin Rating:	3.5 stars
+--------------------------------------------------------------------------
+Artist:		Anthony Braxton/Richard Teitelbaum
+CD:		Silence/Time Zones
+Copyright Date:	1996
+Label:		Black Lion
+ID:		BLCD 760221
+Total Time:	72:58
+Personnel:	Anthony Braxton, sopranino and alto saxophones,
+			contrebasse clarinet, miscellaneous instruments
+		Leo Smith, trumpet and miscellaneous instruments
+		Leroy Jenkins, violin and miscellaneous instruments
+		Richard Teitelbaum, modular moog and micromoog synthesizer
+ADO Rating:	black dot
+AMG Rating:	unrated
+--------------------------------------------------------------------------
+Artist:		Jules Verne
+Book:		Le Tour du Monde en Quatre-Vingts Jours
+		(Around the World in Eighty Days)
+Notes:		Wall-clock time plays a central role in the plot.
+		European readers of the 1870s clearly held the U.S. press in
+		deep contempt; the protagonists cross the U.S. without once
+		reading a paper.
+		An on-line French-language version of the book
+		"with illustrations from the original 1873 French-language edition"
+		is available at
+		http://fourmilab.ch/etexts/www/tdm80j
+		An on-line English-language translation of the book is available at
+		http://www.literature.org/Works/Jules-Verne/eighty
+--------------------------------------------------------------------------
+Film:		Bell Science - About Time
+Notes:		The Frank Baxter/Richard Deacon extravaganza
+		Information on ordering is available at
+		http://www.videoflicks.com/VF/38/038332.htm
+--------------------------------------------------------------------------
+The syndicated comic strip "Dilbert" featured an all-too-rare example of
+time zone humor on 1998-03-14.
+
+ + diff --git a/zic.tproj/Makefile b/zic.tproj/Makefile index 3340739..d99b266 100644 --- a/zic.tproj/Makefile +++ b/zic.tproj/Makefile @@ -1,50 +1,62 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = zic - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = zic +Install_Dir = /usr/sbin HFILES = private.h - CFILES = ialloc.c scheck.c zic.c - -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble zic.8 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/sbin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/BUILD - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(NEXTDEV_BIN)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +MANPAGES = zic.8 + +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make + +LOCALTIME= US/Pacific +POSIXRULES= US/Pacific + +Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) + +# Embedded zic is probably not built with the same architecture as +# the build host, so we can't use the recently built copy. +ifeq "$(Embedded)" "YES" +ZIC=/usr/sbin/zic +else +ZIC=$(DSTROOT)/usr/sbin/zic +endif + +# pacificnew is obsolete and was removed from ZONE_FILES +ZONE_FILES = africa antarctica asia australasia europe northamerica southamerica etcetera factory backward systemv solar87 solar88 solar89 +ZONEINFO = $(DSTROOT)/usr/share/zoneinfo + +# ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz +# the tzdata*.tar.gz file is automatically unpacked and a version file created +# /usr/local/share/tz/tzdata*.tar.gz is installed by the TimeZoneData project +DATFILES = $(OBJROOT)/datfiles +TARBALL = $(shell echo /usr/local/share/tz/tzdata*) +DATVERS = $(shell basename $(TARBALL) | sed -e 's,\..*,,' -e 's/^tzdata//') +VERSIONFILE = $(ZONEINFO)/+VERSION + +after_install: + $(MKDIR) $(DATFILES) + cd $(DATFILES) && tar xzf $(TARBALL) + $(INSTALL_DIRECTORY) $(ZONEINFO) + for tz in $(ZONE_FILES); do \ + if [[ $${tz} = "northamerica" ]]; then \ + ARG="-p America/New_York" ; \ + else \ + ARG="" ; \ + fi ; \ + $(ZIC) $${ARG} \ + -L /dev/null \ + -d $(ZONEINFO) \ + -y $(DATFILES)/yearistype.sh \ + $(DATFILES)/$${tz} ; \ + done + chmod -R og-w $(ZONEINFO) + $(INSTALL_FILE) $(DATFILES)/zone.tab $(ZONEINFO) + $(INSTALL_FILE) $(DATFILES)/iso3166.tab $(ZONEINFO) +ifeq "$(Embedded)" "YES" + $(INSTALL_DIRECTORY) $(DSTROOT)/private/var/db + $(LN) -hfs /usr/share/zoneinfo/$(LOCALTIME) $(DSTROOT)/private/var/db/localtime +else + $(INSTALL_DIRECTORY) $(DSTROOT)/private/etc + $(LN) -hfs /usr/share/zoneinfo/$(LOCALTIME) $(DSTROOT)/private/etc/localtime +endif + echo $(DATVERS) > $(VERSIONFILE) + chmod 444 $(VERSIONFILE) diff --git a/zic.tproj/Makefile.postamble b/zic.tproj/Makefile.postamble deleted file mode 100644 index b4a42ed..0000000 --- a/zic.tproj/Makefile.postamble +++ /dev/null @@ -1,246 +0,0 @@ -############################################################################### -# NeXT Makefile.postamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project, sub-project, bundle, or -# palette. Each node in the project's tree of sub-projects and bundles -# should have it's own Makefile.preamble and Makefile.postamble. Additional -# rules (e.g., after_install) that are defined by the developer should be -# defined in this file. -# -############################################################################### -# -# Here are the variables exported by the common "app" makefiles that can be -# used in any customizations you make to the template below: -# -# PRODUCT_ROOT - Name of the directory to which resources are copied. -# OFILE_DIR - Directory into which .o object files are generated. -# (Note that this name is calculated based on the target -# architectures specified in Project Builder). -# DERIVED_SRC_DIR - Directory used for all other derived files -# ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations -# -# NAME - name of application, bundle, subproject, palette, etc. -# LANGUAGE - langage in which the project is written (default "English") -# LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES - non-localized resources of project -# PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0) -# ICONSECTIONS - Specifies icon sections when linking executable -# -# CLASSES - Class implementation files in project. -# HFILES - Header files in project. -# MFILES - Other Objective-C source files in project. -# CFILES - Other C source files in project. -# PSWFILES - .psw files in the project -# PSWMFILES - .pswm files in the project -# SUBPROJECTS - Subprojects of this project -# BUNDLES - Bundle subprojects of this project -# OTHERSRCS - Other miscellaneous sources of this project -# OTHERLINKED - Source files not matching a standard source extention -# -# LIBS - Libraries to link with when making app target -# DEBUG_LIBS - Libraries to link with when making debug target -# PROF_LIBS - Libraries to link with when making profile target -# OTHERLINKEDOFILES - Other relocatable files to (always) link in. -# -# APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles -# MAKEFILEDIR - Directory in which to find $(MAKEFILE) -# MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make) -# INSTALLDIR - Directory app will be installed into by 'install' target -# -############################################################################### - - -# Change defaults assumed by the standard makefiles here. Edit the -# following default values as appropriate. (Note that if no Makefile.postamble -# exists, these values will have defaults set in common.make). - -# Versioning of frameworks, libraries, bundles, and palettes: -#CURRENTLY_ACTIVE_VERSION = YES - # Set to "NO" to produce a compatibility binary -#DEPLOY_WITH_VERSION_NAME = A - # This should be incremented as your API changes. -#COMPATIBILITY_PROJECT_VERSION = 1 - # This should be incremented as your API grows. -#CURRENT_PROJECT_VERSION = 1 - # Defaults to using the "vers_string" hack. - -# Some compiler flags can be easily overridden here, but onlytake effect at -# the top-level: -#OPTIMIZATION_CFLAG = -O -#DEBUG_SYMBOLS_CFLAG = -g -#WARNING_CFLAGS = -Wmost -#DEBUG_BUILD_CFLAGS = -DDEBUG -#PROFILE_BUILD_CFLAGS = -pg -DPROFILE - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Flags passed to yacc -#YFLAGS = -d - -# Library and Framework projects only: -# 1. If you want something other than the default .dylib name, override it here -#DYLIB_INSTALL_NAME = lib$(NAME).dylib - -# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here. One good choice is the installation directory. Another one might be none at all. -#DYLIB_INSTALL_DIR = $(INSTALLDIR) - -# Ownership and permissions of files installed by 'install' target -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - -# Options to strip for various project types. Note: -S strips debugging symbols -# (executables can be stripped down further with -x or, if they load no bundles, with no -# options at all). -#APP_STRIP_OPTS = -S -#TOOL_STRIP_OPTS = -S -#LIBRARY_STRIP_OPTS = -S - # for .a archives -#DYNAMIC_STRIP_OPTS = -S - # for bundles and shared libraries - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. "Official" -# user-defined rules are: -# * before_install -# * after_install -# * after_installhdrs -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# -# Note: on MS Windows, executables, have an extension, so rules and dependencies -# for generated tools should use $(EXECUTABLE_EXT) on the end. - -############################################################################### -# Install /usr/share/zoneinfo files -############################################################################### - -VPATH += :datfiles - -# If you always want time values interpreted as "seconds since the epoch -# (not counting leap seconds)", use -# REDO= posix_only -# below. If you always want right time values interpreted as "seconds since -# the epoch" (counting leap seconds)", use -# REDO= right_only -# below. If you want both sets of data available, with leap seconds not -# counted normally, use -# REDO= posix_right -# below. If you want both sets of data available, with leap seconds counted -# normally, use -# REDO= right_posix -# below. - -REDO= posix_only - -TZDIR= ${DSTROOT}/usr/share/zoneinfo -LOCALTIME= US/Pacific -POSIXRULES= US/Pacific - -YEARISTYPE= datfiles/yearistype.sh -YEARISTYPECOPY= ${SYM_DIR}/yearistypecopy - -# pacificnew is obsolete and was removed from YDATA -YDATA= africa antarctica asia australasia \ - europe northamerica southamerica etcetera factory \ - backward -NDATA= systemv -SDATA= solar87 solar88 solar89 -TDATA= $(YDATA) $(NDATA) $(SDATA) -DATA= $(YDATA) $(NDATA) $(SDATA) leapseconds # yearistype.sh -USNO= usno1988 usno1989 - -Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) - -# Embedded zic is probably not built with the same architecture as -# the build host, so we can't use the recently built copy. -ifeq "$(Embedded)" "YES" -ZIC=/usr/sbin/zic -else -ZIC=${DSTROOT}/usr/sbin/zic -endif - -${YEARISTYPECOPY}: - cp ${YEARISTYPE} ${YEARISTYPECOPY} - chmod u+x ${YEARISTYPECOPY} - -posix_only: ${TDATA} ${YEARISTYPECOPY} - (cd datfiles; \ - ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR} -L /dev/null ${TDATA}) - -right_only: leapseconds ${TDATA} ${YEARISTYPECOPY} - (cd datfiles; \ - ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR} -L leapseconds ${TDATA}) - -other_two: leapseconds ${TDATA} ${YEARISTYPECOPY} - (cd datfiles; \ - ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR}/posix -L /dev/null ${TDATA}) - (cd datfiles; \ - ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR}/right -L leapseconds ${TDATA}) - -posix_right: posix_only other_two - -right_posix: right_only other_two - -#after_install:: ${DATA} ${REDO} ${YEARISTYPECOPY} -# ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR} -p ${POSIXRULES} -# chown -R ${BINOWN}:${BINGRP} ${TZDIR} -# find ${TZDIR} -type f | xargs chmod a=r -# -rm -f ${DSTROOT}/etc/localtime -# ln -s ${TZDIR}/${LOCALTIME} ${DSTROOT}/etc/localtime - -#since we are not doing native builds ... hack hack hack - -# pacificnew is obsolete and was removed from ZONE_FILES -ZONE_FILES = africa antarctica asia australasia europe northamerica southamerica etcetera factory backward systemv solar87 solar88 solar89 -ZONEINFO = ${DSTROOT}/usr/share/zoneinfo - -# ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz -# the tzdata*.tar.gz file is automatically unpacked and a version file created -# /usr/local/share/tz/tzdata*.tar.gz is installed by the TimeZoneData project -DATFILES = ${OFILE_DIR}/datfiles -TARBALL = $(shell echo /usr/local/share/tz/tzdata*) -DATVERS = $(shell basename ${TARBALL} | sed -e 's,\..*,,' -e 's/^tzdata//') -VERSIONFILE = ${ZONEINFO}/+VERSION - -${DATFILES}: - mkdir -p ${DATFILES} - cd ${DATFILES} && tar xzf ${TARBALL} - -after_install:: ${DATFILES} - -mkdir -p ${DSTROOT}/usr/share - -rm -rf ${ZONEINFO} - mkdir -p ${ZONEINFO} - for tz in ${ZONE_FILES}; do \ - if [[ $${tz} = "northamerica" ]]; then \ - ${ZIC} -p America/New_York -L /dev/null -d ${ZONEINFO} -y ${DATFILES}/yearistype.sh ${DATFILES}/$${tz}; \ - else \ - ${ZIC} -L /dev/null -d ${ZONEINFO} -y ${DATFILES}/yearistype.sh ${DATFILES}/$${tz}; \ - fi \ - done - chmod -R og-w ${ZONEINFO} - install -c -m 444 ${DATFILES}/zone.tab ${ZONEINFO} - install -c -m 444 ${DATFILES}/iso3166.tab ${ZONEINFO} -ifeq "$(Embedded)" "YES" - -mkdir -p ${DSTROOT}/private/var/db - -rm -f ${DSTROOT}/private/var/db/localtime - ln -fs /usr/share/zoneinfo/${LOCALTIME} ${DSTROOT}/private/var/db/localtime -else - -mkdir -p ${DSTROOT}/private/etc - -rm -f ${DSTROOT}/private/etc/localtime - ln -fs /usr/share/zoneinfo/${LOCALTIME} ${DSTROOT}/private/etc/localtime -endif - mkdir -p ${DSTROOT}/usr/share/man/man8 - install -c -m 444 zic.8 ${DSTROOT}/usr/share/man/man8 - echo ${DATVERS} > ${VERSIONFILE} - chmod 444 ${VERSIONFILE} diff --git a/zic.tproj/Makefile.preamble b/zic.tproj/Makefile.preamble deleted file mode 100644 index 74ce95a..0000000 --- a/zic.tproj/Makefile.preamble +++ /dev/null @@ -1,130 +0,0 @@ -############################################################################### -# NeXT Makefile.preamble -# Copyright 1996, NeXT Software, Inc. -# -# This Makefile is used for configuring the standard app makefiles associated -# with ProjectBuilder. -# -# Use this template to set attributes for a project. Each node in a project -# tree of sub-projects, tools, etc. should have its own Makefile.preamble and -# Makefile.postamble. -# -############################################################################### -## Configure the flags passed to $(CC) here. These flags will also be -## inherited by all nested sub-projects and bundles. Put your -I, -D, -U, and -## -L flags in ProjectBuilder's Build Options inspector if at all possible. -## To change the default flags that get passed to ${CC} -## (e.g. change -O to -O2), see Makefile.postamble. - -# Flags passed to compiler (in addition to -g, -O, etc) -OTHER_CFLAGS = -# Flags passed to ld (in addition to -ObjC, etc.) -OTHER_LDFLAGS = -# Flags passed to libtool when building libraries -OTHER_LIBTOOL_FLAGS = -# For ordering named sections on NEXTSTEP (see ld(1)) -SECTORDER_FLAGS = - -# If you do not want any headers exported before compilations begin, -# uncomment the following line. This can be a big time saver. -#SKIP_EXPORTING_HEADERS = YES - -# Stuff related to exporting headers from this project that isn't already -# handled by PB. -OTHER_PUBLIC_HEADERS = -OTHER_PROJECT_HEADERS = -OTHER_PRIVATE_HEADERS = - -# Set these two macros if you want a precomp to be built as part of -# installation. The cc -precomp will be run in the public header directory -# on the specified public header files with the specified additional flags. -PUBLIC_PRECOMPILED_HEADERS = -PUBLIC_PRECOMPILED_HEADERS_CFLAGS = - -# Set this for library projects if you want to publish header files. If your -# app or tool project exports headers Don't -# include $(DSTROOT); this is added for you automatically. -PUBLIC_HEADER_DIR = -PRIVATE_HEADER_DIR = - -# If, in a subproject, you want to append to the parent's PUBLIC_HEADER_DIR# -# (say, to add a subdirectory like "/sys"), you can use: -PUBLIC_HEADER_DIR_SUFFIX = -PRIVATE_HEADER_DIR_SUFFIX = - -# Set this for dynamic library projects on platforms where code which references -# a dynamic library must link against an import library (i.e., Windows NT) -# Don't include $(DSTROOT); this is added for you automatically. -IMPORT_LIBRARY_DIR = - -# Additional (non-localized) resources for this project, which can be generated -OTHER_RESOURCES = - -# Uncomment this to produce a static archive-style (.a) library -#LIBRARY_STYLE = STATIC - -# Set this to YES if you don't want a final libtool call for a library/framework. -BUILD_OFILES_LIST_ONLY = - -# Additional relocatables to be linked into this project -OTHER_OFILES = -# Additional libraries to link against -OTHER_LIBS = -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -## Configure how things get built here. Additional dependencies, source files, -## derived files, and build order should be specified here. - -# Other dependencies of this project -OTHER_PRODUCT_DEPENDS = -# Built *before* building subprojects/bundles -OTHER_INITIAL_TARGETS = -# Other source files maintained by .pre/postamble -OTHER_SOURCEFILES = -# Additional files to be removed by `make clean' -OTHER_GARBAGE = - -# Targets to build before installation -OTHER_INSTALL_DEPENDS = - -# More obscure flags you might want to set for pswrap, yacc, lex, etc. -PSWFLAGS = -YFLAGS = -LFLAGS = - -## Delete this line if you want fast and loose cleans that will not remove -## things like precomps and user-defined OTHER_GARBAGE in subprojects. -CLEAN_ALL_SUBPROJECTS = YES - -## Add more obscure source files here to cause them to be automatically -## processed by the appropriate tool. Note that these files should also be -## added to "Supporting Files" in ProjectBuilder. The desired .o files that -## result from these files should also be added to OTHER_OFILES above so they -## will be linked in. - -# .msg files that should have msgwrap run on them -MSGFILES = -# .defs files that should have mig run on them -DEFSFILES = -# .mig files (no .defs files) that should have mig run on them -MIGFILES = -# .x files that should have rpcgen run on them -RPCFILES = - -## Add additional Help directories here (add them to the project as "Other -## Resources" in Project Builder) so that they will be compressed into .store -## files and copied into the app wrapper. If the help directories themselves -## need to also be in the app wrapper, then a cp command will need to be added -## in an after_install target. -OTHER_HELP_DIRS = - -# After you have saved your project using the 4.0 PB, you will automatically -# start using the makefiles in $(SYSTEM_DEVELOPER_DIR)/Makefiles/project. If you should -# need to revert back to the old 3.3 Makefile behavior, override MAKEFILEDIR to -# be $(SYSTEM_DEVELOPER_DIR)/Makefiles/app. - -# Don't add more rules here unless you want the first one to be the default -# target for make! Put all your targets in Makefile.postamble. - diff --git a/zic.tproj/Makefile.zoneinfo.dist b/zic.tproj/Makefile.zoneinfo.dist new file mode 100644 index 0000000..93158d6 --- /dev/null +++ b/zic.tproj/Makefile.zoneinfo.dist @@ -0,0 +1,86 @@ +# $NetBSD: Makefile,v 1.14 1995/04/22 12:10:17 cgd Exp $ + +# Change the line below for your time zone (after finding the zone you want in +# the time zone files, or adding it to a time zone file). +# Alternately, if you discover you've got the wrong time zone, you can just +# zic -l rightzone + +# This line has been moved to /usr/src/etc/Makefile +LOCALTIME= US/Pacific + +# If you want something other than Eastern United States time as a template +# for handling POSIX-style time zone environment variables, +# change the line below (after finding the zone you want in the +# time zone files, or adding it to a time zone file). +# Alternately, if you discover you've got the wrong time zone, you can just +# zic -p rightzone + +POSIXRULES= US/Pacific + +# Use an absolute path name for TZDIR unless you're just testing the software. + +TZDIR= ${DESTDIR}/usr/share/zoneinfo + +# If you always want time values interpreted as "seconds since the epoch +# (not counting leap seconds)", use +# REDO= posix_only +# below. If you always want right time values interpreted as "seconds since +# the epoch" (counting leap seconds)", use +# REDO= right_only +# below. If you want both sets of data available, with leap seconds not +# counted normally, use +# REDO= posix_right +# below. If you want both sets of data available, with leap seconds counted +# normally, use +# REDO= right_posix +# below. + +REDO= posix_only + +# Since "." may not be in PATH... +YEARISTYPE= ${.CURDIR}/datfiles/yearistype.sh +YEARISTYPECOPY= ${.OBJDIR}/yearistypecopy + +YDATA= africa antarctica asia australasia \ + europe northamerica southamerica pacificnew etcetera factory \ + backward +NDATA= systemv +SDATA= solar87 solar88 solar89 +TDATA= $(YDATA) $(NDATA) $(SDATA) +DATA= $(YDATA) $(NDATA) $(SDATA) leapseconds # yearistype.sh +USNO= usno1988 usno1989 + +ZIC=zic + +${YEARISTYPECOPY}: + cp ${YEARISTYPE} yearistypecopy + chmod u+x yearistypecopy + +posix_only: ${TDATA} ${YEARISTYPECOPY} + (cd ${.CURDIR}/datfiles; \ + ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR} -L /dev/null ${TDATA}) + +right_only: leapseconds ${TDATA} ${YEARISTYPECOPY} + (cd ${.CURDIR}/datfiles; \ + ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR} -L leapseconds ${TDATA}) + +other_two: leapseconds ${TDATA} ${YEARISTYPECOPY} + (cd ${.CURDIR}/datfiles; \ + ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR}/posix -L /dev/null ${TDATA}) + (cd ${.CURDIR}/datfiles; \ + ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR}/right -L leapseconds ${TDATA}) + +posix_right: posix_only other_two + +right_posix: right_only other_two + +realinstall: ${DATA} ${REDO} ${YEARISTYPECOPY} + (cd ${.CURDIR}/datfiles; \ + ${ZIC} -y ${YEARISTYPECOPY} -d ${TZDIR} -p ${POSIXRULES}) + chown -R ${BINOWN}:${BINGRP} ${TZDIR} + find ${TZDIR} -type f | xargs chmod a=r + +CLEANFILES+= yearistypecopy + +.PATH: ${.CURDIR}/datfiles +.include diff --git a/zic.tproj/PB.project b/zic.tproj/PB.project deleted file mode 100644 index f39880b..0000000 --- a/zic.tproj/PB.project +++ /dev/null @@ -1,27 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - FRAMEWORKS = (); - H_FILES = (private.h, tzfile.h); - OTHER_LINKED = (ialloc.c, scheck.c, zic.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, zic.8); - SUBPROJECTS = (); - }; - LANGUAGE = English; - LOCALIZABLE_FILES = {}; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDDIR = "/$(USER)/BUILD"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/sbin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; - PDO_UNIX_JAVA_COMPILER = "$(NEXTDEV_BIN)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = zic; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} diff --git a/zic.tproj/README b/zic.tproj/README new file mode 100644 index 0000000..985a511 --- /dev/null +++ b/zic.tproj/README @@ -0,0 +1,80 @@ +@(#)README 7.11 + +"What time is it?" -- Richard Deacon as The King +"Any time you want it to be." -- Frank Baxter as The Scientist + (from the Bell System film "About Time") + +The 1989 update of the time zone package featured + +* POSIXization (including interpretation of POSIX-style TZ environment + variables, provided by Guy Harris), +* ANSIfication (including versions of "mktime" and "difftime"), +* SVIDulation (an "altzone" variable) +* MACHination (the "gtime" function) +* corrections to some time zone data (including corrections to the rules + for Great Britain and New Zealand) +* reference data from the United States Naval Observatory for folks who + want to do additional time zones +* and the 1989 data for Saudi Arabia. + +(Since this code will be treated as "part of the implementation" in some places +and as "part of the application" in others, there's no good way to name +functions, such as timegm, that are not part of the proposed ANSI C standard; +such functions have kept their old, underscore-free names in this update.) + +And the "dysize" function has disappeared; it was present to allow compilation +of the "date" command on old BSD systems, and a version of "date" is now +provided in the package. The "date" command is not created when you "make all" +since it may lack options provided by the version distributed with your +operating system, or may not interact with the system in the same way the +native version does. + +Since POSIX frowns on correct leap second handling, the default behavior of +the "zic" command (in the absence of a "-L" option) has been changed to omit +leap second information from its output files. + +Here is a recipe for acquiring, building, installing, and testing the +tz distribution on a GNU/Linux or similar host. + + mkdir tz + cd tz + wget 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz' + gzip -dc tzcode*.tar.gz | tar -xf - + gzip -dc tzdata*.tar.gz | tar -xf - + +Be sure to read the comments in "Makefile" and make any changes needed +to make things right for your system, especially if you are using some +platform other than GNU/Linux. Then run the following commands, +substituting your desired installation directory for "$HOME/tzdir": + + make TOPDIR=$HOME/tzdir install + $HOME/tzdir/etc/zdump -v America/Los_Angeles + +To use the new functions, use a "-ltz" option when compiling or linking. + +Historical local time information has been included here not because it +is particularly useful, but rather to: + +* give an idea of the variety of local time rules that have + existed in the past and thus an idea of the variety that may be + expected in the future; + +* provide a test of the generality of the local time rule description + system. + +The information in the time zone data files is by no means authoritative; +if you know that the rules are different from those in a file, by all means +feel free to change file (and please send the changed version to +tz@elsie.nci.nih.gov for use in the future). Europeans take note! + +Thanks to these Timezone Caballeros who've made major contributions to the +time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz; +Guy Harris; Mark Horton; John Mackin; and Bradley White. Thanks also to +Michael Bloom, Art Neilson, Stephen Prince, John Sovereign, and Frank Wales +for testing work, and to Gwillim Law for checking local mean time data. +None of them are responsible for remaining errors. + +Look in the ~ftp/pub directory of elsie.nci.nih.gov +for updated versions of these files. + +Please send comments or information to tz@elsie.nci.nih.gov. diff --git a/zic.tproj/Theory b/zic.tproj/Theory new file mode 100644 index 0000000..cbf53b9 --- /dev/null +++ b/zic.tproj/Theory @@ -0,0 +1,552 @@ +@(#)Theory 7.15 + + +----- Outline ----- + + Time and date functions + Names of time zone regions + Time zone abbreviations + Calendrical issues + Time and time zones on Mars + + +----- Time and date functions ----- + +These time and date functions are upwards compatible with POSIX.1, +an international standard for UNIX-like systems. +As of this writing, the current edition of POSIX.1 is: + + Information technology --Portable Operating System Interface (POSIX (R)) + -- Part 1: System Application Program Interface (API) [C Language] + ISO/IEC 9945-1:1996 + ANSI/IEEE Std 1003.1, 1996 Edition + 1996-07-12 + +POSIX.1 has the following properties and limitations. + +* In POSIX.1, time display in a process is controlled by the + environment variable TZ. Unfortunately, the POSIX.1 TZ string takes + a form that is hard to describe and is error-prone in practice. + Also, POSIX.1 TZ strings can't deal with other (for example, Israeli) + daylight saving time rules, or situations where more than two + time zone abbreviations are used in an area. + + The POSIX.1 TZ string takes the following form: + + stdoffset[dst[offset],date[/time],date[/time]] + + where: + + std and dst + are 3 or more characters specifying the standard + and daylight saving time (DST) zone names. + offset + is of the form `[-]hh:[mm[:ss]]' and specifies the + offset west of UTC. The default DST offset is one hour + ahead of standard time. + date[/time],date[/time] + specifies the beginning and end of DST. If this is absent, + the system supplies its own rules for DST, and these can + differ from year to year; typically US DST rules are used. + time + takes the form `hh:[mm[:ss]]' and defaults to 02:00. + date + takes one of the following forms: + Jn (1<=n<=365) + origin-1 day number not counting February 29 + n (0<=n<=365) + origin-0 day number counting February 29 if present + Mm.n.d (0[Sunday]<=d<=6[Saturday], 1<=n<=5, 1<=m<=12) + for the dth day of week n of month m of the year, + where week 1 is the first week in which day d appears, + and `5' stands for the last week in which day d appears + (which may be either the 4th or 5th week). + +* In POSIX.1, when a TZ value like "EST5EDT" is parsed, + typically the current US DST rules are used, + but this means that the US DST rules are compiled into each program + that does time conversion. This means that when US time conversion + rules change (as in the United States in 1987), all programs that + do time conversion must be recompiled to ensure proper results. + +* In POSIX.1, there's no tamper-proof way for a process to learn the + system's best idea of local wall clock. (This is important for + applications that an administrator wants used only at certain times-- + without regard to whether the user has fiddled the "TZ" environment + variable. While an administrator can "do everything in UTC" to get + around the problem, doing so is inconvenient and precludes handling + daylight saving time shifts--as might be required to limit phone + calls to off-peak hours.) + +* POSIX.1 requires that systems ignore leap seconds. + +These are the extensions that have been made to the POSIX.1 functions: + +* The "TZ" environment variable is used in generating the name of a file + from which time zone information is read (or is interpreted a la + POSIX); "TZ" is no longer constrained to be a three-letter time zone + name followed by a number of hours and an optional three-letter + daylight time zone name. The daylight saving time rules to be used + for a particular time zone are encoded in the time zone file; + the format of the file allows U.S., Australian, and other rules to be + encoded, and allows for situations where more than two time zone + abbreviations are used. + + It was recognized that allowing the "TZ" environment variable to + take on values such as "America/New_York" might cause "old" programs + (that expect "TZ" to have a certain form) to operate incorrectly; + consideration was given to using some other environment variable + (for example, "TIMEZONE") to hold the string used to generate the + time zone information file name. In the end, however, it was decided + to continue using "TZ": it is widely used for time zone purposes; + separately maintaining both "TZ" and "TIMEZONE" seemed a nuisance; + and systems where "new" forms of "TZ" might cause problems can simply + use TZ values such as "EST5EDT" which can be used both by + "new" programs (a la POSIX) and "old" programs (as zone names and + offsets). + +* To handle places where more than two time zone abbreviations are used, + the functions "localtime" and "gmtime" set tzname[tmp->tm_isdst] + (where "tmp" is the value the function returns) to the time zone + abbreviation to be used. This differs from POSIX.1, where the elements + of tzname are only changed as a result of calls to tzset. + +* Since the "TZ" environment variable can now be used to control time + conversion, the "daylight" and "timezone" variables are no longer + needed. (These variables are defined and set by "tzset"; however, their + values will not be used by "localtime.") + +* The "localtime" function has been set up to deliver correct results + for near-minimum or near-maximum time_t values. (A comment in the + source code tells how to get compatibly wrong results). + +* A function "tzsetwall" has been added to arrange for the system's + best approximation to local wall clock time to be delivered by + subsequent calls to "localtime." Source code for portable + applications that "must" run on local wall clock time should call + "tzsetwall();" if such code is moved to "old" systems that don't + provide tzsetwall, you won't be able to generate an executable program. + (These time zone functions also arrange for local wall clock time to be + used if tzset is called--directly or indirectly--and there's no "TZ" + environment variable; portable applications should not, however, rely + on this behavior since it's not the way SVR2 systems behave.) + +* These functions can account for leap seconds, thanks to Bradley White + (bww@k.cs.cmu.edu). + +Points of interest to folks with other systems: + +* This package is already part of many POSIX-compliant hosts, + including BSD, HP, Linux, Network Appliance, SCO, SGI, and Sun. + On such hosts, the primary use of this package + is to update obsolete time zone rule tables. + To do this, you may need to compile the time zone compiler + `zic' supplied with this package instead of using the system `zic', + since the format of zic's input changed slightly in late 1994, + and many vendors still do not support the new input format. + +* The UNIX Version 7 "timezone" function is not present in this package; + it's impossible to reliably map timezone's arguments (a "minutes west + of GMT" value and a "daylight saving time in effect" flag) to a + time zone abbreviation, and we refuse to guess. + Programs that in the past used the timezone function may now examine + tzname[localtime(&clock)->tm_isdst] to learn the correct time + zone abbreviation to use. Alternatively, use + localtime(&clock)->tm_zone if this has been enabled. + +* The 4.2BSD gettimeofday function is not used in this package. + This formerly let users obtain the current UTC offset and DST flag, + but this functionality was removed in later versions of BSD. + +* In SVR2, time conversion fails for near-minimum or near-maximum + time_t values when doing conversions for places that don't use UTC. + This package takes care to do these conversions correctly. + +The functions that are conditionally compiled if STD_INSPIRED is defined +should, at this point, be looked on primarily as food for thought. They are +not in any sense "standard compatible"--some are not, in fact, specified in +*any* standard. They do, however, represent responses of various authors to +standardization proposals. + +Other time conversion proposals, in particular the one developed by folks at +Hewlett Packard, offer a wider selection of functions that provide capabilities +beyond those provided here. The absence of such functions from this package +is not meant to discourage the development, standardization, or use of such +functions. Rather, their absence reflects the decision to make this package +contain valid extensions to POSIX.1, to ensure its broad +acceptability. If more powerful time conversion functions can be standardized, +so much the better. + + +----- Names of time zone rule files ----- + +The time zone rule file naming conventions attempt to strike a balance +among the following goals: + + * Uniquely identify every national region where clocks have all + agreed since 1970. This is essential for the intended use: static + clocks keeping local civil time. + + * Indicate to humans as to where that region is. This simplifes use. + + * Be robust in the presence of political changes. This reduces the + number of updates and backward-compatibility hacks. For example, + names of countries are ordinarily not used, to avoid + incompatibilities when countries change their name + (e.g. Zaire->Congo) or when locations change countries + (e.g. Hong Kong from UK colony to China). + + * Be portable to a wide variety of implementations. + This promotes use of the technology. + + * Use a consistent naming convention over the entire world. + This simplifies both use and maintenance. + +This naming convention is not intended for use by inexperienced users +to select TZ values by themselves (though they can of course examine +and reuse existing settings). Distributors should provide +documentation and/or a simple selection interface that explains the +names; see the 'tzselect' program supplied with this distribution for +one example. + +Names normally have the form AREA/LOCATION, where AREA is the name +of a continent or ocean, and LOCATION is the name of a specific +location within that region. North and South America share the same +area, `America'. Typical names are `Africa/Cairo', `America/New_York', +and `Pacific/Honolulu'. + +Here are the general rules used for choosing location names, +in decreasing order of importance: + + Use only valid POSIX file name components (i.e., the parts of + names other than `/'). Within a file name component, + use only ASCII letters, `.', `-' and `_'. Do not use + digits, as that might create an ambiguity with POSIX + TZ strings. A file name component must not exceed 14 + characters or start with `-'. E.g., prefer `Brunei' + to `Bandar_Seri_Begawan'. + Include at least one location per time zone rule set per country. + One such location is enough. Use ISO 3166 (see the file + iso3166.tab) to help decide whether something is a country. + If all the clocks in a country's region have agreed since 1970, + don't bother to include more than one location + even if subregions' clocks disagreed before 1970. + Otherwise these tables would become annoyingly large. + If a name is ambiguous, use a less ambiguous alternative; + e.g. many cities are named San Jose and Georgetown, so + prefer `Costa_Rica' to `San_Jose' and `Guyana' to `Georgetown'. + Keep locations compact. Use cities or small islands, not countries + or regions, so that any future time zone changes do not split + locations into different time zones. E.g. prefer `Paris' + to `France', since France has had multiple time zones. + Use mainstream English spelling, e.g. prefer `Rome' to `Roma', and + prefer `Athens' to the true name (which uses Greek letters). + The POSIX file name restrictions encourage this rule. + Use the most populous among locations in a country's time zone, + e.g. prefer `Shanghai' to `Beijing'. Among locations with + similar populations, pick the best-known location, + e.g. prefer `Rome' to `Milan'. + Use the singular form, e.g. prefer `Canary' to `Canaries'. + Omit common suffixes like `_Islands' and `_City', unless that + would lead to ambiguity. E.g. prefer `Cayman' to + `Cayman_Islands' and `Guatemala' to `Guatemala_City', + but prefer `Mexico_City' to `Mexico' because the country + of Mexico has several time zones. + Use `_' to represent a space. + Omit `.' from abbreviations in names, e.g. prefer `St_Helena' + to `St._Helena'. + Do not change established names if they only marginally + violate the above rules. For example, don't change + the existing name `Rome' to `Milan' merely because + Milan's population has grown to be somewhat greater + than Rome's. + If a name is changed, put its old spelling in the `backward' file. + +The file `zone.tab' lists the geographical locations used to name +time zone rule files. + +Older versions of this package used a different naming scheme, +and these older names are still supported. +See the file `backward' for most of these older names +(e.g. `US/Eastern' instead of `America/New_York'). +The other old-fashioned names still supported are +`WET', `CET', `MET', `EET' (see the file `europe'), +and `Factory' (see the file `factory'). + + +----- Time zone abbreviations ----- + +When this package is installed, it generates time zone abbreviations +like `EST' to be compatible with human tradition and POSIX.1. +Here are the general rules used for choosing time zone abbreviations, +in decreasing order of importance: + + Use abbreviations that consist of three or more ASCII letters. + Previous editions of this database also used characters like + ' ' and '?', but these characters have a special meaning to + the shell and cause commands like + set `date` + to have unexpected effects. + Previous editions of this rule required upper-case letters, + but the Congressman who introduced Chamorro Standard Time + preferred "ChST", so the rule has been relaxed. + + This rule guarantees that all abbreviations could have + been specified by a POSIX.1 TZ string. POSIX.1 + requires at least three characters for an + abbreviation. POSIX.1-1996 says that an abbreviation + cannot start with ':', and cannot contain ',', '-', + '+', NUL, or a digit. Draft 7 of POSIX 1003.1-200x + changes this rule to say that an abbreviation can + contain only '-', '+', and alphanumeric characters in + the current locale. To be portable to both sets of + rules, an abbreviation must therefore use only ASCII + letters, as these are the only letters that are + alphabetic in all locales. + + Use abbreviations that are in common use among English-speakers, + e.g. `EST' for Eastern Standard Time in North America. + We assume that applications translate them to other languages + as part of the normal localization process; for example, + a French application might translate `EST' to `HNE'. + + For zones whose times are taken from a city's longitude, use the + traditional xMT notation, e.g. `PMT' for Paris Mean Time. + The only name like this in current use is `GMT'. + + If there is no common English abbreviation, abbreviate the English + translation of the usual phrase used by native speakers. + If this is not available or is a phrase mentioning the country + (e.g. ``Cape Verde Time''), then: + + When a country has a single or principal time zone region, + append `T' to the country's ISO code, e.g. `CVT' for + Cape Verde Time. For summer time append `ST'; + for double summer time append `DST'; etc. + When a country has multiple time zones, take the first three + letters of an English place name identifying each zone + and then append `T', `ST', etc. as before; + e.g. `VLAST' for VLAdivostok Summer Time. + + Use "zzz" for locations while uninhabited. The mnemonic is that + these locations are, in some sense, asleep. + +Application writers should note that these abbreviations are ambiguous +in practice: e.g. `EST' has a different meaning in Australia than +it does in the United States. In new applications, it's often better +to use numeric UTC offsets like `-0500' instead of time zone +abbreviations like `EST'; this avoids the ambiguity. + + +----- Calendrical issues ----- + +Calendrical issues are a bit out of scope for a time zone database, +but they indicate the sort of problems that we would run into if we +extended the time zone database further into the past. An excellent +resource in this area is Nachum Dershowitz and Edward M. Reingold, + +Calendrical Calculations +, Cambridge University Press (1997). Other information and +sources are given below. They sometimes disagree. + + +France + +Gregorian calendar adopted 1582-12-20. +French Revolutionary calendar used 1793-11-24 through 1805-12-31, +and (in Paris only) 1871-05-06 through 1871-05-23. + + +Russia + +From Chris Carrier <72157.3334@CompuServe.COM> (1996-12-02): +On 1929-10-01 the Soviet Union instituted an ``Eternal Calendar'' +with 30-day months plus 5 holidays, with a 5-day week. +On 1931-12-01 it changed to a 6-day week; in 1934 it reverted to the +Gregorian calendar while retaining the 6-day week; on 1940-06-27 it +reverted to the 7-day week. With the 6-day week the usual days +off were the 6th, 12th, 18th, 24th and 30th of the month. +(Source: Evitiar Zerubavel, _The Seven Day Circle_) + + +Mark Brader reported a similar story in "The Book of Calendars", edited +by Frank Parise (1982, Facts on File, ISBN 0-8719-6467-8), page 377. But: + +From: Petteri Sulonen (via Usenet) +Date: 14 Jan 1999 00:00:00 GMT +Message-ID: + +If your source is correct, how come documents between 1929 -- 1940 were +still dated using the conventional, Gregorian calendar? + +I can post a scan of a document dated December 1, 1934, signed by +Yenukidze, the secretary, on behalf of Kalinin, the President of the +Executive Committee of the Supreme Soviet, if you like. + + + +Sweden (and Finland) + +From: msb@sq.com (Mark Brader) + +Subject: Re: Gregorian reform -- a part of locale? + +Date: 1996-07-06 + +In 1700, Denmark made the transition from Julian to Gregorian. Sweden +decided to *start* a transition in 1700 as well, but rather than have one of +those unsightly calendar gaps :-), they simply decreed that the next leap +year after 1696 would be in 1744 -- putting the whole country on a calendar +different from both Julian and Gregorian for a period of 40 years. + +However, in 1704 something went wrong and the plan was not carried through; +they did, after all, have a leap year that year. And one in 1708. In 1712 +they gave it up and went back to Julian, putting 30 days in February that +year!... + +Then in 1753, Sweden made the transition to Gregorian in the usual manner, +getting there only 13 years behind the original schedule. + +(A previous posting of this story was challenged, and Swedish readers +produced the following references to support it: "Tiderakning och historia" +by Natanael Beckman (1924) and "Tid, en bok om tiderakning och +kalendervasen" by Lars-Olof Lode'n (no date was given).) + + +Grotefend's data + +From: "Michael Palmer" [with one obvious typo fixed] +Subject: Re: Gregorian Calendar (was Re: Another FHC related question +Newsgroups: soc.genealogy.german +Date: Tue, 9 Feb 1999 02:32:48 -800 +Message-ID: <199902091032.CAA09644@netcom10.netcom.com> + +The following is a(n incomplete) listing, arranged chronologically, of +European states, with the date they converted from the Julian to the +Gregorian calendar: + +04/15 Oct 1582 - Italy (with exceptions), Spain, Portugal, Poland (Roman + Catholics and Danzig only) +09/20 Dec 1582 - France, Lorraine + +21 Dec 1582/ + 01 Jan 1583 - Holland, Brabant, Flanders, Hennegau +10/21 Feb 1583 - bishopric of Liege (L"uttich) +13/24 Feb 1583 - bishopric of Augsburg +04/15 Oct 1583 - electorate of Trier +05/16 Oct 1583 - Bavaria, bishoprics of Freising, Eichstedt, Regensburg, + Salzburg, Brixen +13/24 Oct 1583 - Austrian Oberelsass and Breisgau +20/31 Oct 1583 - bishopric of Basel +02/13 Nov 1583 - duchy of J"ulich-Berg +02/13 Nov 1583 - electorate and city of K"oln +04/15 Nov 1583 - bishopric of W"urzburg +11/22 Nov 1583 - electorate of Mainz +16/27 Nov 1583 - bishopric of Strassburg and the margraviate of Baden +17/28 Nov 1583 - bishopric of M"unster and duchy of Cleve +14/25 Dec 1583 - Steiermark + +06/17 Jan 1584 - Austria and Bohemia +11/22 Jan 1584 - Luzern, Uri, Schwyz, Zug, Freiburg, Solothurn +12/23 Jan 1584 - Silesia and the Lausitz +22 Jan/ + 02 Feb 1584 - Hungary (legally on 21 Oct 1587) + Jun 1584 - Unterwalden +01/12 Jul 1584 - duchy of Westfalen + +16/27 Jun 1585 - bishopric of Paderborn + +14/25 Dec 1590 - Transylvania + +22 Aug/ + 02 Sep 1612 - duchy of Prussia + +13/24 Dec 1614 - Pfalz-Neuburg + + 1617 - duchy of Kurland (reverted to the Julian calendar in + 1796) + + 1624 - bishopric of Osnabr"uck + + 1630 - bishopric of Minden + +15/26 Mar 1631 - bishopric of Hildesheim + + 1655 - Kanton Wallis + +05/16 Feb 1682 - city of Strassburg + +18 Feb/ + 01 Mar 1700 - Protestant Germany (including Swedish possessions in + Germany), Denmark, Norway +30 Jun/ + 12 Jul 1700 - Gelderland, Zutphen +10 Nov/ + 12 Dec 1700 - Utrecht, Overijssel + +31 Dec 1700/ + 12 Jan 1701 - Friesland, Groningen, Z"urich, Bern, Basel, Geneva, + Turgau, and Schaffhausen + + 1724 - Glarus, Appenzell, and the city of St. Gallen + +01 Jan 1750 - Pisa and Florence + +02/14 Sep 1752 - Great Britain + +17 Feb/ + 01 Mar 1753 - Sweden + +1760-1812 - Graub"unden + +The Russian empire (including Finland and the Baltic states) did not +convert to the Gregorian calendar until the Soviet revolution of 1917. + +Source: H. Grotefend, _Taschenbuch der Zeitrechnung des deutschen +Mittelalters und der Neuzeit_, herausgegeben von Dr. O. Grotefend +(Hannover: Hahnsche Buchhandlung, 1941), pp. 26-28. + + +----- Time and time zones on Mars ----- + +Some people have adjusted their work schedules to fit Mars time. +Dozens of special Mars watches were built for Jet Propulsion +Laboratory workers who kept Mars time during the Mars Exploration +Rovers mission (2004). These timepieces look like normal Seikos and +Citizens but use Mars seconds rather than terrestrial seconds. + +A Mars solar day is called a "sol" and has a mean period equal to +about 24 hours 39 minutes 35.244 seconds in terrestrial time. It is +divided into a conventional 24-hour clock, so each Mars second equals +about 1.02749125 terrestrial seconds. + +The prime meridian of Mars goes through the center of the crater +Airy-0, named in honor of the British astronomer who built the +Greenwich telescope that defines Earth's prime meridian. Mean solar +time on the Mars prime meridian is called Mars Coordinated Time (MTC). + +Each landed mission on Mars has adopted a different reference for +solar time keeping, so there is no real standard for Mars time zones. +For example, the Mars Exploration Rover project (2004) defined two +time zones "Local Solar Time A" and "Local Solar Time B" for its two +missions, each zone designed so that its time equals local true solar +time at approximately the middle of the nominal mission. Such a "time +zone" is not particularly suited for any application other than the +mission itself. + +Many calendars have been proposed for Mars, but none have achieved +wide acceptance. Astronomers often use Mars Sol Date (MSD) which is a +sequential count of Mars solar days elapsed since about 1873-12-29 +12:00 GMT. + +The tz database does not currently support Mars time, but it is +documented here in the hopes that support will be added eventually. + +Sources: + +Michael Allison and Robert Schmunk, +"Technical Notes on Mars Solar Time as Adopted by the Mars24 Sunclock" + (2004-03-15). + +Jia-Rui Chong, "Workdays Fit for a Martian", Los Angeles Times +(2004-01-14), pp A1, A20-A21. diff --git a/zic.tproj/ZIC_HACK b/zic.tproj/ZIC_HACK new file mode 100644 index 0000000..2ac9db0 --- /dev/null +++ b/zic.tproj/ZIC_HACK @@ -0,0 +1,4 @@ +#this must be run on a native system + +zic -y datfiles/yearistype.sh -d /tmp/zoneinfo -L /dev/null datfiles/africa datfiles/antarctica datfiles/asia datfiles/australasia datfiles/europe datfiles/northamerica datfiles/southamerica datfiles/pacificnew datfiles/etcetera datfiles/factory datfiles/backward datfiles/systemv datfiles/solar87 datfiles/solar88 datfiles/solar89 + diff --git a/zic.tproj/tz-art.htm b/zic.tproj/tz-art.htm new file mode 100644 index 0000000..56f78ac --- /dev/null +++ b/zic.tproj/tz-art.htm @@ -0,0 +1,278 @@ + + + + + +Time and the Arts + + +

Time and the Arts

+
+@(#)tz-art.htm 7.53 +
+

+Please send corrections to this web page to the +time zone mailing list.

+

+See also Sources for Time Zone and Daylight Saving Time Data.

+
+

+Data on recordings of "Save That Time," Russ Long, Serrob Publishing, BMI:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArtistKarrin Allyson
CDI Didn't Know About You
Copyright Date1993
LabelConcord Jazz, Inc.
IDCCD-4543
Track Time3:44
PersonnelKarrin Allyson, vocal; +Russ Long, piano; +Gerald Spaits, bass; +Todd Strait, drums
NotesCD notes "additional lyric by Karrin Allyson; +arranged by Russ Long and Karrin Allyson"
ADO Rating1 star
AMG Rating4 stars
Penguin Rating3.5 stars
 
ArtistKevin Mahogany
CDDouble Rainbow
Copyright Date1993
LabelEnja Records
IDENJ-7097 2
Track Time6:27
PersonnelKevin Mahogany, vocal; +Kenny Barron, piano; +Ray Drummond, bass; +Ralph Moore, tenor saxophone; +Lewis Nash, drums
ADO Rating1.5 stars
AMG Rating3 stars
Penguin Rating3 stars
 
ArtistJoe Williams
CDHere's to Life
Copyright Date1994
LabelTelarc International Corporation
IDCD-83357
Track Time3:58
PersonnelJoe Williams, vocal +The Robert Farnon [39 piece] Orchestra
NotesThis CD is also available as part of a 3-CD package from +Telarc, "Triple Play" (CD-83461)
ADO Ratingblack dot
AMG Rating2 stars
Penguin Rating3 stars
 
ArtistCharles Fambrough
CDKeeper of the Spirit
Copyright Date1995
LabelAudioQuest Music
IDAQ-CD1033
Track Time7:07
PersonnelCharles Fambrough, bass; +Joel Levine, tenor recorder; +Edward Simon, piano; +Lenny White, drums; +Marion Simon, percussion
NotesOn-line information and samples available at +http://wwmusic.com/~music/audioq/rel/1033.html
ADO Rating2 stars
AMG Ratingunrated
Penguin Rating3 stars
+
+

Also of note:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArtistHolly Cole Trio
CDBlame It On My Youth
Copyright Date1992
LabelManhattan
IDCDP 7 97349 2
Total Time37:45
PersonnelHolly Cole, voice; +Aaron Davis, piano; +David Piltch, string bass
NotesLyrical reference to "Eastern Standard Time" in +Tom Waits' "Purple Avenue"
ADO Rating2.5 stars
AMG Rating3 stars
Penguin Ratingunrated
 
ArtistMilt Hinton
CDOld Man Time
Copyright Date1990
LabelChiaroscuro
IDCR(D) 310
Total Time149:38 (two CDs)
PersonnelMilt Hinton, bass; +Doc Cheatham, Dizzy Gillespie, Clark Terry, trumpet; +Al Grey, trombone; +Eddie Barefield, Joe Camel (Flip Phillips), Buddy Tate, +clarinet and saxophone; +John Bunch, Red Richards, Norman Simmons, Derek Smith, +Ralph Sutton, piano; +Danny Barker, Al Casey, guitar; +Gus Johnson, Gerryck King, Bob Rosengarden, Jackie Williams, +drums; +Lionel Hampton, vibraphone; +Cab Calloway, Joe Williams, vocal; +Buck Clayton, arrangements
Notestunes include Old Man Time, Time After Time, +Sometimes I'm Happy, +A Hot Time in the Old Town Tonight, +Four or Five Times, Now's the Time, +Time on My Hands, This Time It's Us, +and Good Time Charlie +On-line samples available at +http://www.chiaroscurojazz.com/albuminfo.php3?albumid=49
ADO Rating3 stars
AMG Rating4.5 stars
Penguin Rating3 stars
 
ArtistAlan Broadbent
CDPacific Standard Time
Copyright Date1995
LabelConcord Jazz, Inc.
IDCCD-4664
Total Time62:42
PersonnelAlan Broadbent, piano; +Putter Smith, Bass; +Frank Gibson, Jr., drums
NotesThe CD cover features an analemma for equation-of-time fans
ADO Rating1 star
AMG Rating4 stars
Penguin Rating3.5 stars
 
ArtistAnthony Braxton/Richard Teitelbaum
CDSilence/Time Zones
Copyright Date1996
LabelBlack Lion
IDBLCD 760221
Total Time72:58
PersonnelAnthony Braxton, sopranino and alto saxophones, +contrebasse clarinet, miscellaneous instruments; +Leo Smith, trumpet and miscellaneous instruments; +Leroy Jenkins, violin and miscellaneous instruments; +Richard Teitelbaum, modular moog and micromoog synthesizer
ADO Ratingblack dot
AMG Ratingunrated
 
ArtistJules Verne
BookLe Tour du Monde en Quatre-Vingts Jours +(Around the World in Eighty Days)
NotesWall-clock time plays a central role in the plot. +European readers of the 1870s clearly held the U.S. press in +deep contempt; the protagonists cross the U.S. without once +reading a paper. +An on-line French-language version of the book +"with illustrations from the original 1873 French-language edition" +is available at +http://fourmilab.ch/etexts/www/tdm80j +An on-line English-language translation of the book is available at +http://www.literature.org/Works/Jules-Verne/eighty
 
FilmBell Science - About Time
NotesThe Frank Baxter/Richard Deacon extravaganza +Information on ordering is available at +http://www.videoflicks.com/VF2/1035/1035893.ihtml
+
+
    +
  • +An episode of "The Adventures of Superman" entitled "The Mysterious +Cube," first aired 1958-02-24, had Superman convincing the controllers +of WWV to broadcast time signals five minutes ahead of actual time; +doing so got a crook trying to beat the statute of limitations to +emerge a bit too early from the titular enclosure. +
  • +
  • +The 1960s ITC television series "The Prisoner" included an episode +entitled "The Chimes of Big Ben" in which our protagonist tumbled to +the fraudulent nature of a Poland-to-England escape upon hearing "Big +Ben" chiming on Polish local time. +
  • +
  • +The series "Seinfeld" included an episode entitled "The Susie," first +broadcast 1997-02-13, in which Kramer decides that daylight saving time +isn't coming fast enough, so he sets his watch ahead an hour. +
  • +
  • +The syndicated comic strip "Dilbert" featured an all-too-rare example of +time zone humor on 1998-03-14. +
  • +
  • +Surrealist artist Guy Billout's work "Date Line" appeared on page 103 +of the 1999-11 Atlantic Monthly. +
  • +
  • +"Gloom, Gloom, Go Away" by Walter Kirn appeared on page 106 of Time +Magazine's 2002-11-11 issue; among other things, it proposed +year-round DST as a way of lessening wintertime despair. +
  • +
  • +The "20 Hours in America" episode of "The West Wing," first aired 2002-09-25, +saw White House staffers stranded in Indiana; they thought they had time to +catch Air Force One but were done in by intra-Indiana local time changes. +
  • +
  • +"In what time zone would you find New York City?" was a $200 question on +the 1999-11-13 United States airing of "Who Wants to Be a Millionaire?" +"In 1883, what industry led the movement to divide the U.S. into four time +zones?" was a $32,000 question on the 2001-05-23 United States airing of +"Who Wants to Be a Millionaire?" At this rate, the million-dollar time-zone +question should have been asked 2002-06-04. +
  • +
+
+
    +
  • +"We're been using the five-cent nickle in this country since 1492. +Now that's pretty near 100 years, daylight savings [sic]." +(Groucho Marx as Captain Spaulding in "Animal Crackers", 1930, +as noted by Will Fitzerald, wfitzgerald@ameritech.net) +
  • +
  • +"Good news." +"What did they do? Extend Daylight Saving Time year round?" +(Professional tanner George Hamilton, in dialog from a +May, 1999 episode of the syndicated television series "Baywatch") +
  • +
  • +"A fundamental belief held by Americans is that if you are on land, you +cannot be killed by a fish...So most Americans remain on land, believing +they're safe. Unfortunately, this belief—like so many myths, such as that +there's a reason for 'Daylight Saving Time'—is false." +(Dave Barry column, 2000-07-02) +
  • +
  • +"I once had sex for an hour and five minutes, but that was on the day +when you turn the clocks ahead." +(Garry Shandling, 52nd Annual Emmys, 2000-09-10) +
  • +
  • +"Would it impress you if I told you I invented Daylight Savings Time?" +("Sahjhan" to "Lilah" in dialog from the "Loyalty" episode of "Angel," +originally aired 2002-02-25) +
  • +
  • +"I thought you said Tulsa was a three hour flight." +"Well, you're forgetting about the time difference." +("Chandler" and "Joey" in dialog from the episode of "Friends" first +aired 2002-12-05) +
  • +
  • +"Is that a pertinent fact, +or are you trying to dazzle me with your command of time zones?" +(Kelsey Grammer as "Frasier Crane") +
  • +
  • +"Don't worry about the world coming to an end today. +It is already tomorrow in Australia." +(Charles M. Schulz, provided by Steve Summit) +
  • +
+ + diff --git a/zic.tproj/tz-link.htm b/zic.tproj/tz-link.htm new file mode 100644 index 0000000..0e63073 --- /dev/null +++ b/zic.tproj/tz-link.htm @@ -0,0 +1,443 @@ + + + + +Sources for Time Zone and Daylight Saving Time Data + + + + + + + + + + +

Sources for Time Zone and Daylight Saving Time Data

+
+@(#)tz-link.htm 7.42 +
+

+Please send corrections to this web page to the +time zone mailing list. +

+

The tz database

+

+The public-domain time zone database contains code and data +that represent the history of local time +for many representative locations around the globe. +It is updated periodically to reflect changes made by political bodies +to UTC offsets and daylight-saving rules. +This database (often called tz or zoneinfo) +is used by several implementations, +including +the GNU C Library used in +GNU/Linux, +FreeBSD, +NetBSD, +OpenBSD, +Cygwin, +DJGPP, +HP-UX, +IRIX, +Mac OS X, +OpenVMS, +Solaris, +Tru64, and +UnixWare.

+

+Each location in the database represents a national region where all +clocks keeping local time have agreed since 1970. +Locations are identified by continent or ocean and then by the name of +the location, which is typically the largest city within the region. +For example, America/New_York +represents most of the US eastern time zone; +America/Indianapolis represents most of Indiana, which +uses eastern time without daylight saving time (DST); +America/Detroit represents most of Michigan, which uses +eastern time but with different DST rules in 1975; +and other entries represent smaller regions like Starke County, +Kentucky, which switched from central to eastern time in 1991. +To use the database, set the TZ environment variable to +the location's full name, e.g., TZ="America/New_York".

+

+In the tz database's +FTP distribution, +the code is in the file tzcodeC.tar.gz, +where C is the code's version; +similarly, the data are in tzdataD.tar.gz, +where D is the data's version. +The following shell commands download +these files to a GNU/Linux or similar host; see the downloaded +README file for what to do next.

+
wget 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz'
+gzip -dc tzcode*.tar.gz | tar -xf -
+gzip -dc tzdata*.tar.gz | tar -xf -
+
+

+The code lets you compile the tz source files into +machine-readable binary files, one for each location. It also lets +you read a tz binary file and interpret time stamps for that +location.

+

+The data are by no means authoritative. If you find errors, please +send changes to the time zone +mailing list. You can also subscribe to the +mailing list, retrieve the archive of old +messages (in gzip compressed format), or retrieve archived older versions of code +and data.

+

+The Web has several other sources for time zone and daylight saving time data. +Here are some recent links that may be of interest. +

+

Web pages using recent versions of the tz database

+ +

Other time zone database formats

+ +

Other tz compilers

+ +

Other tz binary file readers

+ +

Other tz-based time zone conversion software

+ +

Other time zone databases

+ +

Maps

+ +

Time zone boundaries

+ +

Civil time concepts and history

+ +

National histories of legal time

+
+
Australia
+
The Community Relations Division of the New South Wales (NSW) +Attorney General's Department maintains a history of +daylight saving in NSW.
+
Austria
+
The Federal Office of Metrology and Surveying publishes a +table of daylight saving time in Austria (in German).
+
Belgium
+
The Royal Observatory of Belgium maintains a table of time in Belgium (in Dutch).
+
Brazil
+
The Time Service Department of the National Observatory +records Brazil's daylight saving time decrees (in +Portuguese).
+
Canada
+
The Institute for National Measurement Standards publishes current +and some older information about Time +Zones and Daylight Saving Time.
+
Chile
+
WebExhibits publishes a history of official time (in Spanish) originally +written by the Chilean Hydrographic and Oceanographic Service.
+
Germany
+
The National Institute for Science and Technology maintains the Realisation of +Legal Time in Germany.
+
Israel
+
The Interior Ministry periodically issues announcements (in Hebrew).
+
Mexico
+
The Investigation and Analysis Service of the Mexican Library of +Congress has published a history of Mexican local time (in Spanish).
+
Malaysia
+
See Singapore below.
+
Netherlands
+
Legal time in the Netherlands (in Dutch) +covers the history of local time in the Netherlands from ancient times.
+
New Zealand
+
The Department of Internal Affairs maintains a brief history about +daylight saving. The privately-maintained Time Changes in +New Zealand has more details.
+
Singapore
+
Why +is Singapore in the "Wrong" Time Zone? details the +history of legal time in Singapore and Malaysia.
+
United Kingdom
+
History of +legal time in Britain discusses in detail the country +with perhaps the best-documented history of clock adjustments. +The National Physical Laboratory also maintains an archive +of summer time dates.
+
+

Precision timekeeping

+ +

Time notation

+
    +
  • +A Summary of +the International Standard Date and Time Notation is a good +summary of ISO +8601:1988 - Data elements and interchange formats - Information interchange +- Representation of dates and times (which has been superseded by +ISO 8601:2000).
  • +
  • +Section 3.3 of Internet RFC 2822 +specifies the time notation used in email and HTTP headers.
  • +
  • +Internet RFC +3339 specifies an ISO 8601 profile for use in new Internet +protocols.
  • +
  • +The +Best of Dates, the Worst of Dates covers many problems encountered +by software developers when handling dates and time stamps.
  • +
  • +Alphabetic time zone abbreviations should not be used as unique +identifiers for UTC offsets as they are ambiguous in practice. For +example, "EST" denotes 5 hours behind UTC in English-speaking North +America, but it denotes 10 or 11 hours ahead of UTC in Australia; +and French-speaking North Americans prefer "HNE" to "EST". For +compatibility with POSIX the +tz database contains English abbreviations for all time +stamps but in many cases these are merely inventions of the database +maintainers.
  • +
+

Related indexes

+ + + diff --git a/zprint.tproj/Makefile b/zprint.tproj/Makefile index 5d92632..662c497 100644 --- a/zprint.tproj/Makefile +++ b/zprint.tproj/Makefile @@ -1,48 +1,7 @@ -# -# Generated by the NeXT Project Builder. -# -# NOTE: Do NOT change this file -- Project Builder maintains it. -# -# Put all of your customizations in files called Makefile.preamble -# and Makefile.postamble (both optional), and Makefile will include them. -# - -NAME = zprint - -PROJECTVERSION = 2.8 -PROJECT_TYPE = Tool +Project = zprint +Install_Dir = /usr/bin CFILES = zprint.c +MANPAGES = zprint.1 -OTHERSRCS = Makefile.preamble Makefile Makefile.postamble zprint.1 - - -MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles -CODE_GEN_STYLE = DYNAMIC -MAKEFILE = tool.make -NEXTSTEP_INSTALLDIR = /usr/bin -WINDOWS_INSTALLDIR = /Library/Executables -PDO_UNIX_INSTALLDIR = /usr/bin -LIBS = -DEBUG_LIBS = $(LIBS) -PROF_LIBS = $(LIBS) - - - - -NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc -WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc -PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc -NEXTSTEP_JAVA_COMPILER = /usr/bin/javac -WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe -PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac - -include $(MAKEFILEDIR)/platform.make - --include Makefile.preamble - -include $(MAKEFILEDIR)/$(MAKEFILE) - --include Makefile.postamble - --include Makefile.dependencies +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/zprint.tproj/Makefile.postamble b/zprint.tproj/Makefile.postamble deleted file mode 100644 index 503bd8b..0000000 --- a/zprint.tproj/Makefile.postamble +++ /dev/null @@ -1,104 +0,0 @@ -############################################################################### -# Makefile.postamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile, which is imported after all other makefiles, to -# override attributes for a project's Makefile environment. This allows you -# to take advantage of the environment set up by the other Makefiles. -# You can also define custom rules at the end of this file. -# -############################################################################### -# -# These variables are exported by the standard makefiles and can be -# used in any customizations you make. They are *outputs* of -# the Makefiles and should be used, not set. -# -# PRODUCTS: products to install. All of these products will be placed in -# the directory $(DSTROOT)$(INSTALLDIR) -# GLOBAL_RESOURCE_DIR: The directory to which resources are copied. -# LOCAL_RESOURCE_DIR: The directory to which localized resources are copied. -# OFILE_DIR: Directory into which .o object files are generated. -# DERIVED_SRC_DIR: Directory used for all other derived files -# -# ALL_CFLAGS: flags to pass when compiling .c files -# ALL_MFLAGS: flags to pass when compiling .m files -# ALL_CCFLAGS: flags to pass when compiling .cc, .cxx, and .C files -# ALL_MMFLAGS: flags to pass when compiling .mm, .mxx, and .M files -# ALL_PRECOMPFLAGS: flags to pass when precompiling .h files -# ALL_LDFLAGS: flags to pass when linking object files -# ALL_LIBTOOL_FLAGS: flags to pass when libtooling object files -# ALL_PSWFLAGS: flags to pass when processing .psw and .pswm (pswrap) files -# ALL_RPCFLAGS: flags to pass when processing .rpc (rpcgen) files -# ALL_YFLAGS: flags to pass when processing .y (yacc) files -# ALL_LFLAGS: flags to pass when processing .l (lex) files -# -# NAME: name of application, bundle, subproject, palette, etc. -# LANGUAGES: langages in which the project is written (default "English") -# English_RESOURCES: localized resources (e.g. nib's, images) of project -# GLOBAL_RESOURCES: non-localized resources of project -# -# SRCROOT: base directory in which to place the new source files -# SRCPATH: relative path from SRCROOT to present subdirectory -# -# INSTALLDIR: Directory the product will be installed into by 'install' target -# PUBLIC_HDR_INSTALLDIR: where to install public headers. Don't forget -# to prefix this with DSTROOT when you use it. -# PRIVATE_HDR_INSTALLDIR: where to install private headers. Don't forget -# to prefix this with DSTROOT when you use it. -# -# EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows) -# -############################################################################### - -# Some compiler flags can be overridden here for certain build situations. -# -# WARNING_CFLAGS: flag used to set warning level (defaults to -Wmost) -# DEBUG_SYMBOLS_CFLAGS: debug-symbol flag passed to all builds (defaults -# to -g) -# DEBUG_BUILD_CFLAGS: flags passed during debug builds (defaults to -DDEBUG) -# OPTIMIZE_BUILD_CFLAGS: flags passed during optimized builds (defaults -# to -O) -# PROFILE_BUILD_CFLAGS: flags passed during profile builds (defaults -# to -pg -DPROFILE) -# LOCAL_DIR_INCLUDE_DIRECTIVE: flag used to add current directory to -# the include path (defaults to -I.) -# DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags -# passed to ld/libtool (defaults to nothing) - - -# Library and Framework projects only: -# INSTALL_NAME_DIRECTIVE: This directive ensures that executables linked -# against the framework will run against the correct version even if -# the current version of the framework changes. You may override this -# to "" as an alternative to using the DYLD_LIBRARY_PATH during your -# development cycle, but be sure to restore it before installing. - - -# Ownership and permissions of files installed by 'install' target - -#INSTALL_AS_USER = root - # User/group ownership -#INSTALL_AS_GROUP = wheel - # (probably want to set both of these) -#INSTALL_PERMISSIONS = - # If set, 'install' chmod's executable to this - - -# Options to strip. Note: -S strips debugging symbols (executables can be stripped -# down further with -x or, if they load no bundles, with no options at all). - -#STRIPFLAGS = -S - - -######################################################################### -# Put rules to extend the behavior of the standard Makefiles here. Include them in -# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble. -# -# You should avoid redefining things like "install" or "app", as they are -# owned by the top-level Makefile API and no context has been set up for where -# derived files should go. -# - -install-man-page: - install -d $(DSTROOT)/usr/share/man/man1 - install -c -m 444 zprint.1 $(DSTROOT)/usr/share/man/man1/zprint.1 diff --git a/zprint.tproj/Makefile.preamble b/zprint.tproj/Makefile.preamble deleted file mode 100644 index 44fbaaa..0000000 --- a/zprint.tproj/Makefile.preamble +++ /dev/null @@ -1,139 +0,0 @@ -############################################################################### -# Makefile.preamble -# Copyright 1997, Apple Computer, Inc. -# -# Use this makefile for configuring the standard application makefiles -# associated with ProjectBuilder. It is included before the main makefile. -# In Makefile.preamble you set attributes for a project, so they are available -# to the project's makefiles. In contrast, you typically write additional rules or -# override built-in behavior in the Makefile.postamble. -# -# Each directory in a project tree (main project plus subprojects) should -# have its own Makefile.preamble and Makefile.postamble. -############################################################################### -# -# Before the main makefile is included for this project, you may set: -# -# MAKEFILEDIR: Directory in which to find $(MAKEFILE) -# MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make) - -# Compiler/linker flags added to the defaults: The OTHER_* variables will be -# inherited by all nested sub-projects, but the LOCAL_ versions of the same -# variables will not. Put your -I, -D, -U, and -L flags in ProjectBuilder's -# Build Attributes inspector if at all possible. To override the default flags -# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble. The -# variables below are *inputs* to the build process and distinct from the override -# settings done (less often) in the Makefile.postamble. -# -# OTHER_CFLAGS, LOCAL_CFLAGS: additional flags to pass to the compiler -# Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m, -# .cc, .cxx, .C, and .M files. There is no need to respecify the -# flags in OTHER_MFLAGS, etc. -# OTHER_MFLAGS, LOCAL_MFLAGS: additional flags for .m files -# OTHER_CCFLAGS, LOCAL_CCFLAGS: additional flags for .cc, .cxx, and ...C files -# OTHER_MMFLAGS, LOCAL_MMFLAGS: additional flags for .mm and .M files -# OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS: additional flags used when -# precompiling header files -# OTHER_LDFLAGS, LOCAL_LDFLAGS: additional flags passed to ld and libtool -# OTHER_PSWFLAGS, LOCAL_PSWFLAGS: additional flags passed to pswrap -# OTHER_RPCFLAGS, LOCAL_RPCFLAGS: additional flags passed to rpcgen -# OTHER_YFLAGS, LOCAL_YFLAGS: additional flags passed to yacc -# OTHER_LFLAGS, LOCAL_LFLAGS: additional flags passed to lex - -# These variables provide hooks enabling you to add behavior at almost every -# stage of the make: -# -# BEFORE_PREBUILD: targets to build before installing headers for a subproject -# AFTER_PREBUILD: targets to build after installing headers for a subproject -# BEFORE_BUILD_RECURSION: targets to make before building subprojects -# BEFORE_BUILD: targets to make before a build, but after subprojects -# AFTER_BUILD: targets to make after a build -# -# BEFORE_INSTALL: targets to build before installing the product -# AFTER_INSTALL: targets to build after installing the product -# BEFORE_POSTINSTALL: targets to build before postinstalling every subproject -# AFTER_POSTINSTALL: targts to build after postinstalling every subproject -# -# BEFORE_INSTALLHDRS: targets to build before installing headers for a -# subproject -# AFTER_INSTALLHDRS: targets to build after installing headers for a subproject -# BEFORE_INSTALLSRC: targets to build before installing source for a subproject -# AFTER_INSTALLSRC: targets to build after installing source for a subproject -# -# BEFORE_DEPEND: targets to build before building dependencies for a -# subproject -# AFTER_DEPEND: targets to build after building dependencies for a -# subproject -# -# AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is -# updated every time the project is built. If NO, the dependency -# file is only built when the depend target is invoked. - -# Framework-related variables: -# FRAMEWORK_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the framework's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables - -# Library-related variables: -# PUBLIC_HEADER_DIR: Determines where public exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. For library projects you should -# set this to something like /Developer/Headers/$(NAME). Do not set -# this variable for framework projects unless you do not want the -# header files included in the framework. -# PRIVATE_HEADER_DIR: Determines where private exported header files -# should be installed. Do not include $(DSTROOT) in this value -- -# it is prefixed automatically. -# LIBRARY_STYLE: This may be either STATIC or DYNAMIC, and determines -# whether the libraries produced are statically linked when they -# are used or if they are dynamically loadable. This defaults to -# DYNAMIC. -# LIBRARY_DLL_INSTALLDIR: On Windows platforms, this variable indicates -# where to put the library's DLL. This variable defaults to -# $(INSTALLDIR)/../Executables -# -# INSTALL_AS_USER: owner of the intalled products (default root) -# INSTALL_AS_GROUP: group of the installed products (default wheel) -# INSTALL_PERMISSIONS: permissions of the installed product (default o+rX) -# -# OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be -# passed on the command line to recursive invocations of make. Note that -# the values in OTHER_*FLAGS are inherited by subprojects automatically -- -# you do not have to (and shouldn't) add OTHER_*FLAGS to -# OTHER_RECURSIVE_VARIABLES. - -# Additional headers to export beyond those in the PB.project: -# OTHER_PUBLIC_HEADERS -# OTHER_PROJECT_HEADERS -# OTHER_PRIVATE_HEADERS - -# Additional files for the project's product: <> -# OTHER_RESOURCES: (non-localized) resources for this project -# OTHER_OFILES: relocatables to be linked into this project -# OTHER_LIBS: more libraries to link against -# OTHER_PRODUCT_DEPENDS: other dependencies of this project -# OTHER_SOURCEFILES: other source files maintained by .pre/postamble -# OTHER_GARBAGE: additional files to be removed by `make clean' - -# Set this to YES if you don't want a final libtool call for a library/framework. -# BUILD_OFILES_LIST_ONLY - -# To include a version string, project source must exist in a directory named -# $(NAME).%d[.%d][.%d] and the following line must be uncommented. -# OTHER_GENERATED_OFILES = $(VERS_OFILE) - -# This definition will suppress stripping of debug symbols when an executable -# is installed. By default it is YES. -# STRIP_ON_INSTALL = NO - -# Uncomment to suppress generation of a KeyValueCoding index when installing -# frameworks (This index is used by WOB and IB to determine keys available -# for an object). Set to YES by default. -# PREINDEX_FRAMEWORK = NO - -# Change this definition to install projects somewhere other than the -# standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems -# and "" on other systems. -DSTROOT = $(HOME) - -AFTER_INSTALL += install-man-page diff --git a/zprint.tproj/PB.project b/zprint.tproj/PB.project deleted file mode 100644 index e474b78..0000000 --- a/zprint.tproj/PB.project +++ /dev/null @@ -1,25 +0,0 @@ -{ - DYNAMIC_CODE_GEN = YES; - FILESTABLE = { - FRAMEWORKS = (); - OTHER_LINKED = (zprint.c); - OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); - }; - LANGUAGE = English; - MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; - NEXTSTEP_BUILDTOOL = /bin/gnumake; - NEXTSTEP_INSTALLDIR = /usr/bin; - NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; - NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; - PDO_UNIX_BUILDTOOL = /bin/gnumake; - PDO_UNIX_INSTALLDIR = /usr/bin; - PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; - PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; - PROJECTNAME = zprint; - PROJECTTYPE = Tool; - PROJECTVERSION = 2.8; - WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; - WINDOWS_INSTALLDIR = /Library/Executables; - WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; - WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; -} -- 2.45.2