Enlace estático de bibliotecas en MinGW

Supongamos que tengo tres archivos fuente de C. Los primeros dos son LIBs (lib * .a?), Y el tercero es una aplicación que los utiliza.

El primero es (re.c):

int re(int i) {
    return i;
}

El segundo es (test.c):

int re(int); // Depends on re.c

int test(int i) {
    return re(i);
}

Y el tercero es (main.c):

#include<stdio.h>

int test(int); // Uses test.c

int main(void) {

    printf("%d\n",test(0));
    return 0;
}

Ahora, ¿cómo puedo crear los dos primeros LIBs de tal manera que me permita vincularlos estáticamente más tarde con la aplicación principal?

Sé cómo crear las DLL y vincularlas dinámicamente en mi aplicación, como por ejemplo:

cc -o re.dll re.c -shared -Wl, - out-implib = libre.a (para re.c)

cc -o test.dll test.c -L. -lre -shared -Wl, - out-implib = libtest.a (para test.c)

cc -o main.exe main.c -L. -lre -ltest

Entonces, ¿cómo crear LIBs equivalentes para vincularse estáticamente dentro de mi binario ejecutable en MinGW, y cómo vincularlos?

Obviamente, bajo Windows :)

Respuestas a la pregunta(2)

Su respuesta a la pregunta