Steven, Thanks for your reply. What I can do in make file is: KNL_VER := $(shell uname -r) KNL_MAJOR := $(shell echo $(KNL_VER) | cut -c -3) ifeq (2.4, $(KNL_MAJOR)) MAKE_FILE := makefile else MAKE_FILE := Makefile endif all: $(MAKE) -C AppDir -f $(MAKE_FILE) I just want to know how to put a bash script in make file instead of those ifeq....endif statements. KNL_VER := $(shell uname -r) KNL_MAJOR := $(shell echo $(KNL_VER) | cut -c -3) all: $(SHELL) if [2.4 == $(KNL_MAJOR)]; then \ $(MAKE) -C AppDir -f makefile \ else \ $(MAKE) -C AppDir -f Makefile \ fi But it doesn't work, I don't know how to do it. I found some project use something like this in makefile all: -@if [ ! -f .config ]; then \ cp a.file b.file \ fi Why my make file doesn't work? -----Original Message----- From: Steven W. Orr [mailto:steveo@xxxxxxxxxxx] Sent: Friday, December 02, 2005 4:58 PM To: Gavin Li Cc: fedora-list@xxxxxxxxxx Subject: Re: How to put shell script to Makefile On Friday, Dec 2nd 2005 at 16:07 -0500, quoth Gavin Li: =>I have a script like this: => =>KNL_VER=2.6.9 =>echo ${KNL_VER) | cut -c -3 =>if [ $? == "2.6"] ; then => Make -f Makefile =>else => Make -f Makefile-2.4 =>endif => =>How can I put in make file? Gavin, you're very confused. $? is always the exit status code of the previous command. I'm not sure what you're looking for. For starters: KNL_VER=2.6.9 if [[ $(echo ${KNL_VER) | cut -c -3) = 2.6 ]] then Make -f Makefile else Make -f Makefile-2.4 fi Now, please try again and tell me what you're trying to ask. -- Time flies like the wind. Fruit flies like a banana. Stranger things have .0. happened but none stranger than this. Does your driver's license say Organ ..0 Donor?Black holes are where God divided by zero. Listen to me! We are all- 000 individuals! What if this weren't a hypothetical question? steveo at syslang.net