Page 1 of 2

Bochs: CygWin's `make install` says “no rule to make target”

Posted: Fri Jun 01, 2012 8:12 am
by hustensaftos
hi,
I'm building Bochs from source using CygWin.

What I've already done:

1. Changing the value of my {$PATH} variable in order to use CygWin's {find} instead of Windows' {find}: {PATH='/cygdrive/c/Programme/cygwin/bin':${PATH}}
1. Configuring: Exceution of my configure script (see below): {./.conf.my-win32-vcpp}
1. Building via {make win32_snap}
1. Installing via {make install} (not successfully)


My question:

How can I build and install Bochs from source (without having these problems)? Any idea?

Thanks.

My configure script:

Code: Select all

    #!/bin/sh
    
    set echo
    
    ./configure --target=pentium-windows \
                --enable-sb16 \
                --enable-ne2000 \
    			--enable-all-optimizations \
                --enable-cpu-level=6 \
                --enable-x86-64 \
                --enable-pci \
                --enable-clgd54xx \
                --enable-usb \
                --enable-usb-ohci \
                --enable-show-ips \
    			--enable-disasm \
    			--enable-iodebug \
    			--enable-logging \
    			--enable-debugger-gui \
                --disable-readline \
                --without-x \
                --with-win32 \
    			--with-rfb \
    			--with-nogui \
    			--with-wx
    
    unset echo
    
    # Fix up all makefiles so that nmake can handle them.
    for i in `find . -name Makefile`; do
      echo Removing curly brackets in $i for NMAKE.
      mv $i $i.tmp
      sed -e 's/{/(/g' -e 's/}/)/g' < $i.tmp > $i
      rm -f $i.tmp
    done
The error messages:

While I run my configure script ({./.conf.my-win32-vcpp}), I got some warnings, but it executed successfully:

Code: Select all

    [...]
    configure: WARNING: pthread.h: present but cannot be compiled
    configure: WARNING: pthread.h:     check for missing prerequisite headers?
    configure: WARNING: pthread.h: see the Autoconf documentation
    configure: WARNING: pthread.h:     section "Present But Cannot Be Compiled"
    configure: WARNING: pthread.h: proceeding with the compiler's result
    [...]
And there wasn't any problem while evaluating {make win32_snap}. But when I try to {make install}, {Error 2} occurs:

Code: Select all

    cd iodev
    C:/gnuwin/make  libiodev.a
    make[1]: Entering directory `C:/Users/JK/Downloads/bochs-2.5.1'
    make[1]: *** No rule to make target `libiodev.a'.  Stop.
    make[1]: Leaving directory `C:/Users/JK/Downloads/bochs-2.5.1'
    make: *** [iodev/libiodev.a] Error 2
My environment:

I use CygWin's {sh} shell on Win64.
My {$PATH}:
/cygdrive/c/cygwin/:/cygdrive/c/Program Files/Common Files/Microsoft Shared/Windows Live: (...) :/cygdrive/c/prog-x86/MinGW/bin (...) :/cygdrive/c/Program Files/Java/jdk1.6.0_24/bin:/cygdrive/c/Program Files/Java/jdk1.6.0_24/jre/bin:/cygdrive/c/Windows/system32 (...) :/cygdrive/c/gnuwin:/usr/bin (...)
I'm using GnuWin's {make}:

Code: Select all

    sh-4.1$ type make
    make is hashed (/cygdrive/c/gnuwin/make)
Directory Tree:

Code: Select all

    sh-4.1$ tree -d
    .
    |-- bios
    |-- build
    |   |-- linux
    |   |-- macos
    |   |-- macosx
    |   |-- redhat
    |   `-- win32
    |       `-- nsis
    |-- bx_debug
    |-- cpu
    |   `-- cpudb
    |-- disasm
    |-- doc
    |   |-- docbook
    |   |   |-- development
    |   |   |-- documentation
    |   |   |-- images
    |   |   |-- include
    |   |   `-- user
    |   `-- man
    |-- docs-html
    |-- fpu
    |-- gui
    |   |-- bitmaps
    |   |-- font
    |   `-- keymaps
    |-- host
    |   `-- linux
    |       `-- pcidev
    |-- instrument
    |   |-- example0
    |   |-- example1
    |   |-- example2
    |   `-- stubs
    |-- iodev
    |-- memory
    |-- misc
    |   `-- sb16
    |-- patches
    `-- vs2008
    
    40 directories

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 8:18 am
by stlw
I thought the the name of configure script you using .conf.my-win32-vcpp is self explaining.
Doesn't VCPP tell you something ?
You configuring Bochs for Visual Studio and Visual Studio's nmake. It is very strange to me why you didn't like the .conf.win32-cygwin instead.

Stanislav

P.S.> Befor eyou run to these problems as well. I had a problem to compile Bochs with gcc4 supplied in cygwin package.
Older gcc version or mingw gcc (I used gcc4.6.1. from http://tdm-gcc.tdragon.net/download) are fine.
I never tried gcc-mingw64 from cygwin package.
Also it is recommended to skip --eable-plugins option when compiling with cygwin.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 8:21 am
by stlw
BTW, I see you have pthreads problems. I have no idea how to make pthreads happy with cygwin so probably it is easier to avoid it.
You don't need with-wx (it require pthreads).

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 9:05 am
by hustensaftos
stlw wrote:(...) You configuring Bochs for Visual Studio (...)
As far as I know, the configure scripts for Visual C++ and for CygWin are near the same. And I changed some options in my {.conf.win32-vcpp} file and saved it as {.conf.my-win32-vcpp}. Or is there something what's not good for CygWin to your mind.
stlw wrote:(...) skip --eable-plugins option when compiling with cygwin.
Is there a special reason why?

Thanks, hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 9:10 am
by hustensaftos
stlw wrote:BTW, I see you have pthreads problems. I have no idea how to make pthreads happy with cygwin so probably it is easier to avoid it.
You don't need with-wx (it require pthreads).
Thanks. I removed target and wx. That's the current version:

Code: Select all

#!/bin/sh

set echo

./configure --enable-sb16 \
            --enable-ne2000 \
			--enable-all-optimizations \
            --enable-cpu-level=6 \
            --enable-x86-64 \
            --enable-pci \
            --enable-clgd54xx \
            --enable-usb \
            --enable-usb-ohci \
            --enable-show-ips \
			--enable-disasm \
			--enable-iodebug \
			--enable-logging \
			--enable-debugger-gui \
			--enable-show-ips \
			--enable-readline \
            --disable-readline \
            --without-x \
            --with-win32 \
			--with-rfb \
			--with-nogui

unset echo

# Fix up all makefiles so that nmake can handle them.
for i in `find . -name Makefile`; do
  echo Removing curly brackets in $i for NMAKE.
  mv $i $i.tmp
  sed -e 's/{/(/g' -e 's/}/)/g' < $i.tmp > $i
  rm -f $i.tmp
done


But it's not working either. The current error message(s):

Code: Select all

sh-4.1$ make install
cd iodev && \
        C:/gnuwin/make  libiodev.a
make[1]: Entering directory `C:/Users/JK/Downloads/bochs-2.5.1/iodev'
g++ -c  -I.. -I./.. -I../instrument/stubs -I./../instrument/stubs  -DWIN32 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES    devices.cc -o devices.o
process_begin: CreateProcess(C:\Program Files\cygwin\bin\g++.exe, g++ -c -I.. -I./.. -I../instrument/stubs -I./../instrument/stubs -DWIN32 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES devices.cc -o devices.o, ...) failed.
make (e=5): Zugriff verweigert
make[1]: *** [devices.o] Error 5
make[1]: Leaving directory `C:/Users/JK/Downloads/bochs-2.5.1/iodev'
make: *** [iodev/libiodev.a] Error 2
lg hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 1:05 pm
by stlw
process_begin: CreateProcess(C:\Program Files\cygwin\bin\g++.exe, g++ -c -I.. -I./.. -I../instrument/stubs -I./../instrument/stubs -DWIN32 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES devices.cc -o devices.o, ...) failed.
make (e=5): Zugriff verweigert
Sounds like smth wrong with your gcc. If you do simple 'make' instead of 'make install' does it work ?

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 1:57 pm
by hustensaftos
stlw wrote:If you do (...) 'make' (...) does it work ?
No, not really.

Code: Select all

cd iodev && \
        C:/gnuwin/make  libiodev.a
make[1]: Entering directory `C:/Users/JK/Downloads/bochs-2.5.1/iodev'
g++ -c  -I.. -I./.. -I../instrument/stubs -I./../instrument/stubs  -DWIN32 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES    devices.cc -o devices.o
process_begin: CreateProcess(C:\Program Files\cygwin\bin\g++.exe, g++ -c -I.. -I./.. -I../instrument/stubs -I./../instrument/stubs -DWIN32 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES devices.cc -o devices.o, ...) failed.
make (e=5): Zugriff verweigert
make[1]: *** [devices.o] Error 5
make[1]: Leaving directory `C:/Users/JK/Downloads/bochs-2.5.1/iodev'
make: *** [iodev/libiodev.a] Error 2
Thanks, hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 2:00 pm
by hustensaftos
stlw wrote:(...)smth wrong with your gcc.
I never abused my compiler. Anyway, is there any test method to easily find out whats wrong with my old friend called gcc?

lg hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Fri Jun 01, 2012 2:45 pm
by Combuster
It's telling you what's wrong with it: "access denied". You are apparently not allowed to use the compiler. (that is one feature though I'd like to see in some other threads :mrgreen:)

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Sat Jun 02, 2012 2:09 am
by hustensaftos
Combuster wrote:(...) You are (...) not allowed to use the compiler.
Any idea why? Or: How can I allow somebody to use my g++.

lg hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Sat Jun 02, 2012 2:15 am
by hustensaftos
By the way, I'm using CygWin's compiler:

Code: Select all

sh-4.1$ type gcc
gcc is /cygdrive/c/cygwin/gcc
sh-4.1$ type g++
g++ is /cygdrive/c/cygwin/g++
sh-4.1$
sh-4.1$ gcc -dumpversion
3.4.4
sh-4.1$ g++ -dumpversion
3.4.4
I'll try to use MinGW.

lg hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Sat Jun 02, 2012 2:31 am
by hustensaftos
hi,

What I Did:
I changed my env in order to bring Bochs to use MinGW:

Code: Select all

sh-4.1$ export CC=/cygdrive/c/mingw/gcc.exe
sh-4.1$ export CXX=/cygdrive/c/mingw/gcc.exe
My Compiler:

Code: Select all

sh-4.1$ /cygdrive/c/mingw/gcc.exe -dumpversion
4.5.2
sh-4.1$ /cygdrive/c/mingw/g++.exe -dumpversion
4.5.2
Error Messages:

Code: Select all

sh-4.1$ ./.conf.my-win32-vcpp
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking if you are configuring for another platform... no
checking for standard CFLAGS on this platform... -DWIN32
checking for gcc... /cygdrive/c/mingw/gcc.exe
checking whether the C compiler works... no
configure: error: in `/cygdrive/c/Users/JK/Downloads/bochs-2.5.1':
configure: error: C compiler cannot create executables
See `config.log' for more details.
(...)

lg hustensaftos.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Sat Jun 02, 2012 3:00 am
by Griwes

Code: Select all

configure: error: C compiler cannot create executables
See `config.log' for more details.
I guess you should be sent to primary school to learn to read; the first line of the two I quoted says that something is definitely wrong with your compiler. Also, IIRC, Google skill is required on this forum...

Just install some sane Linux distribution alongside of your Windows installation and don't bother with trying to make Cygwin work like real Linux installation...

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Sat Jun 02, 2012 3:08 am
by Combuster
It's a bit of a shame that the latest Bochs release is broken on a non-screwed-over-cygwin installation as well - mostly because it used to work out of the box. And unfortunately there's more than one issue involved in that...

Things I found so far:
- Mixing windows sockets with (emulated) bsd sockets gives compilation errors
- c++98 doesn't support (v)snprintf
- _beginthread/_endthread are part of the Visual C Runtime, and do not show up in cygwin or mingw headers.

Re: Bochs: CygWin's `make install` says “no rule to make tar

Posted: Sat Jun 02, 2012 4:18 am
by hustensaftos
Maybe I'll should try it on mSys...

lg hustensaftos.

PS: I'll add some information out of the config.log to my last post. But it shouldn't be possible that there's something completly wrong with my compiler. It's MinGW's original and I never abused it. Is it possible that there's another reason why it's not able to create executables?