diff --git a/unix/Makefile b/unix/Makefile index b905b06834..06169ddac5 100644 --- a/unix/Makefile +++ b/unix/Makefile @@ -126,6 +126,8 @@ ifeq ($(PROG),micropython) SRC_C += $(BUILD)/_frozen_upip.c else ifeq ($(PROG),micropython_coverage) SRC_C += $(BUILD)/_frozen_upip.c +else ifeq ($(PROG), micropython_freedos) +SRC_C += $(BUILD)/_frozen_upip.c endif LIB_SRC_C = $(addprefix lib/,\ @@ -169,6 +171,16 @@ fast: minimal: $(MAKE) COPT="-Os -DNDEBUG" CFLAGS_EXTRA='-DMP_CONFIGFILE=""' BUILD=build-minimal PROG=micropython_minimal MICROPY_PY_TIME=0 MICROPY_PY_TERMIOS=0 MICROPY_PY_SOCKET=0 MICROPY_PY_FFI=0 MICROPY_USE_READLINE=0 +freedos: + $(MAKE) \ + CC=i586-pc-msdosdjgpp-gcc \ + CFLAGS_EXTRA='-DMP_CONFIGFILE="" -DMICROPY_NLR_SETJMP -Dtgamma=gamma -DMICROPY_EMIT_X86=0 -DMICROPY_NO_ALLOCA=1 -DMICROPY_PY_USELECT=0' \ + BUILD=build-freedos \ + PROG=micropython_freedos \ + MICROPY_PY_SOCKET=0 \ + MICROPY_PY_FFI=0 \ + MICROPY_PY_JNI=0 + # build an interpreter for coverage testing and do the testing coverage: $(MAKE) COPT="-O0" CFLAGS_EXTRA='-fprofile-arcs -ftest-coverage -Wdouble-promotion -Wformat -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpointer-arith -Wshadow -Wsign-compare -Wuninitialized -Wunused-parameter -DMICROPY_UNIX_COVERAGE' LDFLAGS_EXTRA='-fprofile-arcs -ftest-coverage' BUILD=build-coverage PROG=micropython_coverage diff --git a/unix/mpconfigport_freedos.h b/unix/mpconfigport_freedos.h new file mode 100644 index 0000000000..780911fd61 --- /dev/null +++ b/unix/mpconfigport_freedos.h @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2015 Damien P. George + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +// options to control how MicroPython is built + +#include + +#undef MICROPY_STREAMS_NON_BLOCK +#define MICROPY_STREAMS_NON_BLOCK (0) + +#undef MICROPY_PY_SYS_PLATFORM +#define MICROPY_PY_SYS_PLATFORM "freedos" + +// djgpp dirent struct does not have d_ino field +#define _DIRENT_HAVE_D_INO (0)