Я не знаю, о чем вы спрашиваете, но есть несколько простых способов манипулирования строками.
Например, вы можете добавить суффикс .o
к каждому из ваших базовых имен с помощью OBJS = $(addsuffix.o,$(CC_BASENAMES))
.
Вы можете преобразовать один суффикс в другой, например $(OBJS:.o=.cc)
. Так что, возможно, вам нужен Makefile, такой как
CC_BASENAMES := Source15 Source32 Source41
OBJS = $(addsuffix.o,$(CC_BASENAMES))
SRCS = $(OBJS:.o=.cc)
fred.o: $(SRCS)
cc $(SRCS) -o fred.o
Или, что чаще, вы сначала определяете SRCS и получаете от него OBJS.
Если вы хотите, чтобы правило зависимости применялось только к некоторым целям, вы можете использовать цели :цель -шаблон :предварительное требование -шаблоны , т.е.
$(OBJS): %.o: %.cc
См. gnu make .
Я нашел решение.
Оказывается, демон с именем powerd (1M)будет прослушивать событие кнопки питания, poll(2)
отправляя /dev/power_button
устройство.
Интересно, что он также будет проверять gnome-power-manager
процесс и пропускать завершение работы, если этот процесс существует; это объясняет, почему выключение не происходит, когда запущен GNOME (, рабочий стол по умолчанию в Solaris 11 ). Ссылка:https://github.com/illumos/illumos-gate/blob/80148899834a4078a2bd348504aa2d6de9752837/usr/src/cmd/power/powerd.c#L1188
powerd (1M)запускается pmconfig (1M ), который, в свою очередь, запускается службой system/power
SMF; чтобы решить проблему, я просто отключил эту службу, и все заработало нормально:
svcadm disable system/power
Если у вас Solaris 10 или 11, вы можете полностью отключить ACPI с помощью eeprom(8)
, и это единственный известный мне способ. В мануале (на моей машине 11.4 )написано:
acpi-user-options
A configuration variable that controls the use of Advanced Configu-
ration and Power Interface (ACPI), a power management specifica-
tion. The acceptable values for this variable depend on the release
of the Solaris operating system you are using.
For all releases of Solaris 10 and Solaris 11, a value of of 0x0
means that there will be an attempt to use ACPI if it is available
on the system. A value of 0x2 disables the use of ACPI.