Unable to compile under MinGW in a directory outside MSYS

Hi,:

I got latest MinGW installed and I’m trying to compile latest GNURadio
based on the steps from
http://gnuradio.org/redmine/wiki/gnuradio/MingwInstallMain, everything
works if I put the gnuradio source files under /usr/src/gnuradio,
however if I run ./bootstrap and ./configure from outside MSYS directory
system, say E:\gnuradio (i.e. change directory to /e/gnuradio inside
MSYS) and run ./bootstrap and ./configure, then make, I got error:

test_gruel.cc: In function ‘void ensure_unittest_path(const char*, const
char*)’
:
test_gruel.cc:75:3: error: ‘mkdir’ was not declared in this scope
make[5]: *** [test_gruel.o] Error 1

Is there a ./configure flag I should use in this case?

Thanks

Jimmy R. wrote:

char*)’
:
test_gruel.cc:75:3: error: ‘mkdir’ was not declared in this scope
make[5]: *** [test_gruel.o] Error 1

Is there a ./configure flag I should use in this case?

My guess is that this is due to a recent change in
gruel/src/lib/test_gruel.cc. Try adding the line

#include <unistd.h>

immediately after the line

#include <sys/stat.h>

Please let us know if this works.

– Don W.

Jimmy R. wrote:

:

I can see the following in config.log:

configure:19611: checking whether mkdir accepts only one arg
configure:19628: gcc -c -DWINVER=0x0501 -I/usr/local/include conftest.c

&5
configure:19628: $? = 0
configure:19629: result: yes

Aha! In gruel/src/lib/test_gruel.cc, try adding the line

#include <config.h>

before the line

#include <cppunit/TextTestRunner.h>

Let us know if that fixes it.

Thanks,

– Don W.

On 11/6/2010 2:38 AM, Don W. wrote:

#include <unistd.h>

immediately after the line

#include <sys/stat.h>

Please let us know if this works.
It did get rid of the original error, but I got a new one now:
test_gruel.cc: In function ‘void ensure_unittest_path(const char*, const
char*)’
:
test_gruel.cc:76:3: error: too many arguments to function ‘int
mkdir(const char*
)’
c:\mingw\bin…/lib/gcc/mingw32/4.5.0/…/…/…/…/include/io.h:302:3
7: note: declared here
test_gruel.cc:77:3: error: too many arguments to function ‘int
mkdir(const char*
)’
c:\mingw\bin…/lib/gcc/mingw32/4.5.0/…/…/…/…/include/io.h:302:3
7: note: declared here
make[5]: *** [test_gruel.o] Error 1

I can see the following in config.log:

configure:19611: checking whether mkdir accepts only one arg
configure:19628: gcc -c -DWINVER=0x0501 -I/usr/local/include conftest.c

&5
configure:19628: $? = 0
configure:19629: result: yes

and in the end:

-----------

confdefs.h.

-----------

/* confdefs.h */
#define PACKAGE_NAME “”
#define PACKAGE_TARNAME “”
#define PACKAGE_VERSION “”
#define PACKAGE_STRING “”
#define PACKAGE_BUGREPORT “”
#define PACKAGE_URL “”
#define PACKAGE “gnuradio”
#define VERSION “”
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define EXTENSIONS 1
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define _TANDEM_SOURCE 1
#define CXX_HAS_STD_ISNAN //
#define LT_OBJDIR “.libs/”
#define HAVE_PYTHON_H 1
#define STDC_HEADERS 1
#define HAVE_FCNTL_H 1
#define HAVE_LIMITS_H 1
#define HAVE_STRINGS_H 1
#define HAVE_TIME_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_UNISTD_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_SCHED_H 1
#define HAVE_SIGNAL_H 1
#define HAVE_MALLOC_H 1
#define HAVE_WINDOWS_H 1
#define HAVE_SYS_TYPES_H 1
#define TIME_WITH_SYS_TIME 1
#define HAVE_ALLOCA 1
#define ALIGNED_MALLOC 0
#define HAVE_VPRINTF 1
#define HAVE_STRCSPN 1
#define HAVE_STRERROR 1
#define HAVE_STRSPN 1
#define HAVE_GETPAGESIZE 1
#define HAVE_SNPRINTF 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_MODF 1
#define HAVE_SQRT 1
#define HAVE_SINF 1
#define HAVE_COSF 1
#define HAVE_TRUNC 1
#define HAVE_LOG2 1
#define HAVE_CREATEFILEMAPPING 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_FCNTL_H 1
#define HAVE_IO_H 1
#define HAVE_WINDOWS_H 1
#define HAVE_WINIOCTL_H 1
#define HAVE_WINBASE_H 1
#define HAVE_GETOPT 1
#define HAVE_USLEEP 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_RAND 1
#define HAVE_SRAND 1
#define HAVE_STRUCT_TIMEZONE 1
#define HAVE_SSIZE_T 1
#define HAVE_GETOPT 1
#define HAVE_USLEEP 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_SSLEEP 1
#define MKDIR_TAKES_ONE_ARG /
/
#define HAVE_BOOST 1
#define HAVE_PTHREAD 1
#define HAVE_BOOST_THREAD 1
#define HAVE_BOOST_DATE_TIME 1
#define HAVE_BOOST_PROGRAM_OPTIONS 1
#define HAVE_CBLAS 1
#define HAVE_FCNTL_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DECL_GETENV 1
#define mkstemp rpl_mkstemp
#define HAVE_STDINT_H 1
#define HAVE_GETTIMEOFDAY 1
#define MKDIR_TAKES_ONE_ARG /**/
#define HAVE_SNPRINTF 1
#define HAVE_LIBWINMM 1