免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1276 | 回复: 2
打印 上一主题 下一主题

makefile中如何判定远方主机状态 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-24 17:32 |只看该作者 |倒序浏览
我们目前在A机上编译程序,程序编译完成后在同步到其它机器上,但其它机器有时未启动,请教高手如何在makefile中判别网络机器状态选择执行rcp?

我的思路是用ping条件执行rcp但没有效果

只好向各位大虾求救,并附上makefile片断
.SUFFIXES: .idl .cpp .o


PROGRAM1 = wam_as_fhz
OBJECTS1 = wam_as_fhz.o


CC       =  CC -mt -KPIC -instances=extern -D_UNIX -D_CXX
CCFLAGS  = -c -g -I. -I.. -I../../include -I../../.. -D_SUN -I/usr/local/corba/include
LDFLAGS  = -L../../lib_sun
LIBS     = -ldl -lw -lgen  -lposix4 -lpthread -lresolv -lpub


.cpp.o:
@echo   $(CC) $(CCFLAGS) $<
@       $(CC) $(CCFLAGS) $<


all : $(PROGRAM1)

$(PROGRAM1): $(OBJECTS1)
@echo   $(CC) -o $(PROGRAM1) $(OBJECTS1) $(LDFLAGS) $(LIBS)
@       $(CC) -o $(PROGRAM1) $(OBJECTS1) $(LDFLAGS) $(LIBS)
cp -f $(PROGRAM1) $(USER_HOME)/wam_bin
rcp $(PROGRAM1) hostname(USER_HOME)/wam_bin


# optional part

RM = rm -f


clean:
$(RM) $(PROGRAM1) $(OBJECTS1)

论坛徽章:
0
2 [报告]
发表于 2005-06-24 17:42 |只看该作者

makefile中如何判定远方主机状态

ping -c 2 - i  5 ${hostip)
if [ $? -eq 0 ]
then
  rcp ...........
fi

论坛徽章:
0
3 [报告]
发表于 2005-06-24 18:38 |只看该作者

makefile中如何判定远方主机状态

all : $(PROGRAM1) $(PROGRAM2) $(PROGRAM3) $(PROGRAM4) $(PROGRAM5)

$(PROGRAM1): $(OBJECTS1) $(OBJ_EXT)
        @echo   $(CC) -o $(PROGRAM1) $(OBJECTS1) $(OBJ_EXT) $(LDFLAGS) $(LIBS)
        @       $(CC) -o $(PROGRAM1) $(OBJECTS1) $(OBJ_EXT) $(LDFLAGS) $(LIBS)
        cp -f $(PROGRAM1) $(USER_HOME)/wam_bin
        ping hdwam05-1 1 > /dev/null
        if [ $? -eq 0 ]
        then
                rcp $(PROGRAM1) hdwam05-1(USER_HOME)/wam_bin
        fi
。。。
以后省略
这样不行呀
报错:
ping hdwam05-1 1 > /dev/null
*** Error code 1
make: Fatal error: Command failed for target `wam_as_fhz'

实际上我是这样写的
all : $(PROGRAM1) $(PROGRAM2) $(PROGRAM3) $(PROGRAM4) $(PROGRAM5)

$(PROGRAM1): $(OBJECTS1) $(OBJ_EXT)
        @echo   $(CC) -o $(PROGRAM1) $(OBJECTS1) $(OBJ_EXT) $(LDFLAGS) $(LIBS)
        @       $(CC) -o $(PROGRAM1) $(OBJECTS1) $(OBJ_EXT) $(LDFLAGS) $(LIBS)
        cp -f $(PROGRAM1) $(USER_HOME)/wam_bin
        case `uname` in
                OSF1)   ping -c 1 -t 1 hdwam05-1> /dev/null ;;
                HP-UX)   ;;
                AIX)    ping -c 1 -w 1 hdwam05-1> /dev/null ;;
                SunOS)  ping hdwam05-1 1 > /dev/null ;;
                *)      echo "Unknown machine type"
        esac
        if [ $? -eq 0 ]
        then
                rcp $(PROGRAM1) hdwam05-1(USER_HOME)/wam_bin
        fi

这个也不行,请教好心人解决

原有makefile较大,简化过程中可能会有个别错误,但大致意思如此
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP