我为应用程序制作了一个简单的 Makefile,安装后我需要重新启动 udev 规则。
INSTALLDIR=/pkt/bin
OS:=$(shell uname -v)
LBITS:=$(shell getconf LONG_BIT)
LIBDIR=/usr/lib
ifeq ($(LBITS),64)
LIBDIR64=/usr/lib64
else
LIBDIR64=/usr/lib
endif
all: usbupdater
configuracion.o: configuracion.cpp
g++ -c configuracion.cpp
main.o: main.cpp
g++ -c main.cpp
usbupdater: main.o configuracion.o
@echo "$(PATH)"
@echo "$(LIBDIR)"
g++ main.o configuracion.o $(LIBDIR)/libReadINI.a $(LIBDIR64)/chilkat/li
bchilkat-9.4.1.a -lpthread -lresolv -o usbupdater
clean:
rm -rf *.o *.cgh $(INSTALLDIR)/usbupdater
install:
mv usbupdater $(INSTALLDIR)/usbupdater
cp -rf 99-persistent-usb.rules /etc/udev/rules.d/99-persistent-usb.rules
postinstall:
@echo "$(OS)"
ifeq ($(findstring Debian,$(OS)),Debian) \
@echo "Estoy dentro del if"
$(shell '/etc/init.d/udev' restart) \
else \
@echo "Estoy dentro del else"
$(shell ls -l) \
endif
问题是当我输入 make postinstall 时会显示这个错误:
#1 SMP Debian 3.2.46-1+deb7u1
ifeq (Debian,Debian) \
@echo "Estoy dentro del if"
/bin/sh: 1: Syntax error: word unexpected (expecting ")")
make: *** [postinstall] Error 2
我不知道问题出在哪里。我将 uname -v 的结果与 Debian 进行比较,以执行 udev restart 或 udevcontrol reload_rules(如果它是 Opensuse 操作系统)。
在此先感谢并为我的英语感到抱歉。