Compiling with Cygwin in windows

Posted by Kayin on Tue 27 Dec 2005 08:30 PM — 8 posts, 29,566 views.

#0
I recently dug up my smaug mud from 4 years ago, and am attempting to run it in windows, however I had a problem trying to compile it in cygwin. (this is my first time using Cygwin)

$ make smaug
gcc -c -o act_comm.o act_comm.c
gcc -c -o act_info.o act_info.c
gcc -c -o act_move.o act_move.c
act_move.c:391:15: warning: trigraph ??> ignored, use -trigraphs to enable
act_move.c: In function `generate_exit':
act_move.c:602: warning: use of cast expressions as lvalues is deprecated
gcc -c -o act_obj.o act_obj.c
gcc -c -o act_wiz.o act_wiz.c
act_wiz.c:1904:22: warning: trigraph ??! ignored, use -trigraphs to enable
gcc -c -o boards.o boards.c
gcc -c -o build.o build.c
gcc -c -o clans.o clans.c
gcc -c -o comm.o comm.c
gcc -c -o comments.o comments.c
gcc -c -o const.o const.c
gcc -c -o db.o db.c
gcc -c -o deity.o deity.c
gcc -c -o fight.o fight.c
gcc -c -o handler.o handler.c
gcc -c -o hashstr.o hashstr.c
gcc -c -o ibuild.o ibuild.c
gcc -c -o ident.o ident.c
gcc -c -o interp.o interp.c
interp.c:29:1: warning: "timerclear" redefined
In file included from mud.h:41,
from interp.c:23:
/usr/include/sys/time.h:47:1: warning: this is the location of the previous defi
nition
interp.c:31:1: warning: "timercmp" redefined
/usr/include/sys/time.h:48:1: warning: this is the location of the previous defi
nition
gcc -c -o magic.o magic.c
gcc -c -o makeobjs.o makeobjs.c
gcc -c -o mapout.o mapout.c
gcc -c -o misc.o misc.c
gcc -c -o mpxset.o mpxset.c
gcc -c -o mud_comm.o mud_comm.c
gcc -c -o mud_prog.o mud_prog.c
gcc -c -o player.o player.c
player.c:1133:12: warning: trigraph ??) ignored, use -trigraphs to enable
gcc -c -o polymorph.o polymorph.c
gcc -c -o imm_host.o imm_host.c
gcc -c -o colorize.o colorize.c
make: *** No rule to make target `rm', needed by `smaug'. Stop.

How can I fix this last make error? I'm not too worried about the compile warnings, i'm pretty sure they were there 4 years ago, heh.

make: *** No rule to make target `rm', needed by `smaug'. Stop.
USA #1
Something seems wrong with the Makefile. Have you tried just typing make?
#2
Aye, when I type make with no argument it gives me this:

make: *** No rule to make target `make', needed by `all'. Stop.

'make clean' also gives me the 'rm', needed by 'clean' error.

Here is my makefile.. i'm not sure if you can tell anything from that though..

Quote:

CC = gcc
#PROF = -p
NOCRYPT =

# Uncomment the two lines below if compiling on a Solaris box
#SOLARIS_FLAG = -Dsun -DSYSV
#SOLARIS_LINK = -lnsl -lsocket

#Uncomment the line below if you are getting a line like:
#interp.c:757: warning: int format, time_t arg (arg 7)
TIME = -DTIMEFORMAT

#Uncomment the line below if you are getting implicit decleration of re_exec
REG = -DREGEX

#Uncomment the line below if you are getting undefined re_exec errors
#NEED_REG = -lgnuregex

#Uncomment the line below if you are getting undefined crypt errors
NEED_CRYPT = -lcrypt

#DBUGFLG = -DREQUESTS

#Uncomment the line below if you want a performance increase though beware
#your core files may not be as much of a benefit if you do.
#OPT_FLAG = -finline-functions -funroll-loops -fdefer-pop -fstrength-reduce

C_FLAGS = $(OPT_FLAG) -O -g3 -Wall -Wuninitialized $(PROF) $(NOCRYPT) $(DBUGFLG) -DSMAUG $(SOLARIS_FLAG) $(TIME) $(REG)
L_FLAGS = $(OPT_FLAG) $(PROF) $(SOLARIS_LINK) $(NEED_CRYPT)

#Uncomment the next three comments below if you want to use IMC
#USE_IMC = -DUSE_IMC

#IMC_OFILES = imc.o imc-mail.o imc-interp.o imc-util.o imc-config.o \
# imc-events.o imc-version.o imc-mercbase.o ice.o icec.o icec-mercbase.o

#IMC_CFILES = imc.c imc-mail.c imc-interp.c imc-util.c imc-config.c \
# imc-events.c imc-version.c imc-mercbase.c ice.c icec.c icec-mercbase.c

O_FILES = act_comm.o act_info.o act_move.o act_obj.o act_wiz.o boards.o \
build.o clans.o comm.o comments.o const.o db.o deity.o fight.o \
handler.o hashstr.o ibuild.o ident.o interp.o magic.o makeobjs.o \
mapout.o misc.o mpxset.o mud_comm.o mud_prog.o player.o polymorph.o \
requests.o reset.o save.o shops.o skills.o special.o tables.o \
track.o update.o grub.o stat_obj.o ban.o services.o planes.o \
imm_host.o $(IMC_OFILES) colorize.o healer.o bank.o locker.o \
quest.o remort.o newarena.o shell.o board.o chance.o

C_FILES = act_comm.c act_info.c act_move.c act_obj.c act_wiz.c boards.c \
build.c clans.c comm.c comments.c const.c db.c deity.c fight.c \
handler.c hashstr.c ibuild.c ident.c interp.c magic.c makeobjs.c \
mapout.c misc.c mpxset.c mud_comm.c mud_prog.c player.c polymorph.c \
requests.c reset.c save.c shops.c skills.c special.c tables.c \
track.c update.c grub.c stat_obj.c ban.c services.c planes.c \
imm_host.c $(IMC_CFILES) colorize.c healer.c bank.c locker.c \
quest.c remort.c newarena.c shell.c board.c chance.c

H_FILES = mud.h bet.h imc-config.h imc-mercbase.h imc-mercdefs.h imc.h \
ice.h icec.h icec-mercbase.h bank.h shell.h board.h

all:
make smaug

smaug: $(O_FILES)
rm -f smaug
$(CC) $(L_FLAGS) $(USE_IMC) -o smaug $(O_FILES)
chmod g+w smaug
chmod a+x smaug
chmod g+w $(O_FILES)

.c.o: mud.h
$(CC) -c $(C_FLAGS) $(USE_IMC) $<

clean:
rm -f *.o smaug *~


Thanks for the quick reply.
USA #3
Works for me. I just tested a make clean, no problems. Perhaps you missed a package on Cygwin?
Amended on Wed 28 Dec 2005 12:13 AM by Zeno
USA #4
You say it's your first time using Cygwin, but you didn't specify how long ago you downloaded it. If it's particularly old, you may need to update it. If it's new, then as Zeno points out you're probably missing something. The "rm" command is usually part of the coreutils package in linux but I'm not sure what the same thing is in Cygwin. Should be part of any default install though.

The other possibility is that your make package is wrong. Perhaps try reinstalling just that?
#5
I just installed Cygwin last night from the link on their website... It's basically the default install, however I added all the development tools, and what is suggested on the Gammon walkthrough.

Reinstalled the make development tool within Cygwin, but its still giving me the 'rm' error. Any ideas which program im missing in it?
USA #6
Does the rm command work normally?

When I downloaded Cygwin, I simply got all the packages.
#7
Yeah I'm able to use rm to remove all my .o files between compile attempts.

Downloading every package on cygwin now... Will take a bit, hehe.