Página 1 de 1

Como compilar DRC en windows...

Publicado: Mar 30 May 2006 , 14:00
por wynton
... y hacer que parezca que compilamos en un linux. O mejor dicho, como compilar DRC con GCC, que es el compilador GNU por excelencia.

Bueno, ya se que este, dentro de los temas menores en los que me estoy especializando, es ridículamente menor. Pero supongo que aquí, en la sala menor es donde menos molestará. Digo molestará por lo que viene a continuación.

Lo mejor para compilar DRC en un windows es instalarse mingw:

http://www.mingw.org/

mingw ofrece un entorno de programación compatible con el software GNU pero dentro de Windows.

De toda la lista de paquetes a instalar:

http://www.mingw.org/download.shtml

yo tengo instalados Minimal System 1.0.10 (MSYS 1.0.10) y MSYS Developer Tool Kit 1.0.1.

http://prdownloads.sf.net/mingw/MSYS-1. ... e?download
http://prdownloads.sf.net/mingw/msysDTK ... e?download

MSYS crea un acceso directo a una consola de trabajo. Y si, efectivamente, en modo consola es como vamos a trabajar.

desde esta shell podemos escribir:

gcc -v

y nos dirá:

Reading specs from C:/MinGW/bin/../lib/gcc-lib/mingw32/3.2.3/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c++,f77,objc --disable-win32-registry --disable-shared --enable-sjlj-exceptions
Thread model: win32
gcc version 3.2.3 (mingw special 20030504-1)

Ahí está nuestro compilador gnu preparado.

Tambien tenemos make:

make -v

GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i686-pc-msys
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to <bug-make@gnu.org>.

¿donde están nuestros discos con nuestro preciado windows? Pues C: está en /c . O D: está en /d.

Si escribimos ls /c obtenemos un listado del contenido de C:. Ojo con los nombres de directorio o archivos con espacios dentro. Hay que encerrar entre comillas (") todo el path (la ruta al archivo desde el punto en el que estamos) para poder trabajar con el.

Otros comandos útiles: cd para cambiar de directorio, vi para editar (ejejejejee), less para leer un fichero.

Seguimos...

Re: Como compilar DRC en windows...

Publicado: Mar 30 May 2006 , 14:15
por Luismax
wynton escribió: Otros comandos útiles: ...
cd/ rm-r *.*

:mrgreen:

Publicado: Mar 30 May 2006 , 15:04
por RR
Arghhhh! Ni se os ocurra hacer eso (qué malvado...).

Gracias wyn, voy a intentar compilarlo con proceso a 64 bits (el precompilado va a 32).

Publicado: Mié 31 May 2006 , 10:21
por wynton
He reinstalado todo de nuevo para preparar la guia de instalación, porque con los dos paquetes anteriormente citados no basta y porque hay que seguir un orden y una serie de normas para instalar el sistema MinGW con el compilador gcc/g++ incluido.

El primer programa a descargarse es:

http://prdownloads.sf.net/mingw/MinGW-5 ... e?download

Este programa es un instalador de otros paquetes de forma automática.
Veamos el progreso del proceso de instalación:

1- Pantalla de bienvenida. => Next

Imagen

2- Elegimos un mirror desde el cual descargarnos los paquetes requeridos.
Yo he optado por uno localizado en Suiza. => Next

Imagen

3- Elegimos la versión de los paquetes a instalar. Yo he optado por "Current". => Next

Imagen

4- Marcamos los paquetes deseados: yo he marcado MinGW base tools, g++ compiler, g77 compiler y MinGW make. => Next

Imagen

5- Elegimos la carpeta de destino. Conviene dejar la opción por defecto. En C:/MinGW es donde podremos encontrar la instalación de MinGW (binarios, librerias, archivos de configuración) => Next

Imagen

6- Dejamos que nos prepare un acceso en el Start Menu. => Next.

Imagen

7- Le dejamos descargándose el software e instalándolo.

Imagen

8- Nos informa del proceso de desempaquetado e instalación. => Next

Imagen

9- That's All Folks!!!

Imagen

Y a partir de aquí hay que pasar a instalar MSYS. Lo vemos a continuación.

Publicado: Mié 31 May 2006 , 10:49
por wynton
Instalación de MSYS:

http://prdownloads.sf.net/mingw/MSYS-1. ... e?download

1- Nos pregunta si queremos seguir. => Yes.

Imagen

2- Que si seguimos.... que si.... => Yes.

Imagen

3- ¿Aceptamos la licencia? => Yes.

Imagen

4- Mas avisos => Next.

Imagen

5- Nos pide que elijamos donde instalarlo. Os recomiendo la elección por defecto. => Next

Imagen

6- Menu de selección de componentes. Solo hay una opción. => Next

Imagen

7- Pantalla de elección de icono en el Start Menu. => Next

Imagen

8- Nos informa de nuestra elección antes de instalar. => Install

Imagen

9- Nos muestra la evolución del proceso de instalación. Tras ello pasa a la preparación de las variables de entorno necesarias.

Imagen

10- Nos pregunta en una nueva pantalla si queremos proseguir con el proceso de post-instalación. => y

Imagen

11- Nos pregunta si tenemos instalado MinGW. Como es cierto si hemos seguido la etapa del posta anterior. => y

Imagen

12- Nos pregunta que le digamos al instalador donde está instalado MinGW. Si lo hemos instalado en el directorio por defecto. => C:/MinGW

Imagen

13- Nos informa de como ha ido el proceso de detección de programas instalados en MinGW. => Pulsar un tecla.

Imagen

14- Proceso terminado. => Finish

Imagen

A partir de aquí si abrimos el icono MSYS del escritorio aparece una consola como esta:

Imagen

Queda la instalación de msysDTK. Lo vemos a continuación.

Publicado: Mié 31 May 2006 , 10:56
por wynton
Instalación de msysDTK:

http://prdownloads.sf.net/mingw/msysDTK ... e?download

Voy a mostrar la única pantalla relevante del proceso. Las demás son como en MSYS (Yes, Yes, Install, Install, tal y cual...)

Imagen

Hay que indicar como carpeta de instalación la misma que elegimos para MSYS en el proceso anterior.

Publicado: Mié 31 May 2006 , 11:16
por wynton
Desde la consola de MSYS hay una utilidad muy práctica para ahorrar tecleo. Dándole una o dos veces seguidas al tabulador (en seguida vereis la diferencia), MSYS te autocompleta (o lo intenta) lo que queremos escribir.

Vayamos ahora a la compilación de DRC, que es lo que queríamos hacer.

El fichero Makefile que viene de serie con DRC no funciona bien con MinGW porque hay código C y C++ mezclado y hay que seleccionar el compilador correcto (gcc o g++). Yo tengo esta chapucilla:

****** Makefile *****************************************

# DRC base makefile

C_PLUS=g++
CC=gcc

# Warning check pedantic settings
# CFLAGS=-Wall -pedantic -I.

# Standard optimization settings
CFLAGS=-O3 -I.

# i686 optimizaztions settings
# CFLAGS=-O3 -mtune=i686 -ffast-math -msse -I.

# i686 optimizaztions settings with SSE support
# -mfpmath=sse often causes accuracy problems
# CFLAGS=-O3 -mtune=i686 -ffast-math -msse -mfpmath=sse -I.

DRCSRCPP=baselib.cpp drc.cpp fft.cpp hd.cpp slprefilt.cpp spline.cpp bwprefilt.cpp convol.cpp dspwind.cpp drccfg.cpp fir.cpp level.cpp toeplitz.cpp cmdline.o parsecfg.o kirkebyfd.cpp fftsg.o gsl/gsl_fft.o gsl/error.o gsl/stream.o

DRCSRC= cmdline.c parsecfg.c fftsg.c gsl/gsl_fft.c gsl/error.c gsl/stream.c

GLSWEEPSRC=glsweep.c

LSCONVSRC=lsconv.c fftsg_h.c

ALL: drc glsweep lsconv

drc: $(DRCSRCPP)
$(C_PLUS) $(CFLAGS) -lm -lstdc++ -o drc $(DRCSRCPP)

glsweep: $(GLSWEEPSRC)
$(CC) $(CFLAGS) -lm -o glsweep $(GLSWEEPSRC)

lsconv: $(LSCONVSRC)
$(CC) $(CFLAGS) -lm -o lsconv $(LSCONVSRC)

%.o: %.c gsl/%.c
$(CC) -c $<

****************************************

Las lineas que no comienzan en la columna primera es que tienen un tabulador delante, no vale (creo) multiespacio.

Con esto basta con ir al directorio source de la carpeta drc-2.6.2 y escribir:

make

La respuesta del sistema tiene que ser:

gcc -O3 -I. -c -o cmdline.o cmdline.c
gcc -O3 -I. -c -o parsecfg.o parsecfg.c
gcc -O3 -I. -c -o fftsg.o fftsg.c
gcc -O3 -I. -c -o gsl/gsl_fft.o gsl/gsl_fft.c
gcc -O3 -I. -c -o gsl/error.o gsl/error.c
gcc -O3 -I. -c -o gsl/stream.o gsl/stream.c
g++ -O3 -I. -lm -lstdc++ -o drc baselib.cpp drc.cpp fft.cpp hd.cpp slprefilt.cpp spline.cpp bwprefilt.cpp convol.cpp dspwind.cpp drccfg.cpp fir.cpp level.cpp toeplitz.cpp cmdline.o parsecfg.o kirkebyfd.cpp fftsg.o gsl/gsl_fft.o gsl/error.o gsl/stream.o
gcc -O3 -I. -lm -o glsweep glsweep.c
gcc -O3 -I. -lm -o lsconv lsconv.c fftsg_h.c

Y ya disponemos de glsweep.exe (generador de sweeps), lsconv.exe (convolver para generación de respuestas impulsivas a partir de las medidas con sweeps) y drc.exe (el generador de filtros ecualizadores).

Estos programas una vez compilados se pueden distribuir sin necesidad de librerias adicionales (DLL's). Son independientes.

Publicado: Mié 31 May 2006 , 11:25
por wynton
Editores GNU para leer y modificar las fuentes de DRC:

1- Emacs: el editor por excelencia; solo apto para muy frikis. Versión para windows:

http://ftp.gnu.org/pub/gnu/emacs/windows/

Basta con bajarse y descomprimir:

http://ftp.gnu.org/pub/gnu/emacs/window ... 386.tar.gz


2- DevC++:

http://www.bloodshed.net/devcpp.html

Botones, barritas, pestañas y todos estos estorbos....

Publicado: Mié 31 May 2006 , 12:21
por wynton
Se me olvidaba, una versión "light" del emacs es Xemacs:

http://www.xemacs.org/Download/win32/

Es precisamente el editor que empleo bajo windows.

Publicado: Mar 06 Jun 2006 , 14:33
por luisggarcia
Yo estoy empleando el "Code::Blocks"
http://www.codeblocks.org/

Que es el que recomienda DRC.

Y me parece mucho más sencillo todo. No voy a poner ninguna ventana o explicación. Pues es gratuito, simplemente instalártelo y ya está.

Simplemente abriendo "drc.workspace" se abre de golpe todos los ficheros empleados de manera que puedes compilar, hacer debuger, o por ejemplo con un golpe de tecla sobre cualquier variable te envía de golpe al .h donde está definida o lo mismo sobre cualquier función te envía de golpe al .c donde se encuentra y abierto el fichero justo en esa función. Y por supuesto puedes editar rápidamente cualquier código.

Publicado: Mié 07 Jun 2006 , 6:30
por wynton
Fenómeno, tiene muy buena pinta.

No lo conocía, muchas gracias por la información Luis.