]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_ez/rules.mk
e96cd20825c3f530f4dbfba7df3b53a224beb112
[qmk_firmware.git] / keyboards / ergodox_ez / rules.mk
1 #----------------------------------------------------------------------------
2 # On command line:
3 #
4 # make = Make software.
5 #
6 # make clean = Clean out built project files.
7 #
8 # That's pretty much all you need. To compile, always go make clean,
9 # followed by make.
10 #
11 # For advanced users only:
12 # make teensy = Download the hex file to the device, using teensy_loader_cli.
13 #               (must have teensy_loader_cli installed).
14 #
15 #----------------------------------------------------------------------------
16
17 # # project specific files
18 SRC += matrix.c
19
20 # MCU name
21 MCU = atmega32u4
22
23 # Processor frequency.
24 #     This will define a symbol, F_CPU, in all source code files equal to the
25 #     processor frequency in Hz. You can then use this symbol in your source code to
26 #     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
27 #     automatically to create a 32-bit value in your source code.
28 #
29 #     This will be an integer division of F_USB below, as it is sourced by
30 #     F_USB after it has run through any CPU prescalers. Note that this value
31 #     does not *change* the processor frequency - it should merely be updated to
32 #     reflect the processor speed set externally so that the code can use accurate
33 #     software delays.
34 F_CPU = 16000000
35
36
37 #
38 # LUFA specific
39 #
40 # Target architecture (see library "Board Types" documentation).
41 ARCH = AVR8
42
43 # Input clock frequency.
44 #     This will define a symbol, F_USB, in all source code files equal to the
45 #     input clock frequency (before any prescaling is performed) in Hz. This value may
46 #     differ from F_CPU if prescaling is used on the latter, and is required as the
47 #     raw input clock is fed directly to the PLL sections of the AVR for high speed
48 #     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
49 #     at the end, this will be done automatically to create a 32-bit value in your
50 #     source code.
51 #
52 #     If no clock division is performed on the input clock inside the AVR (via the
53 #     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
54 F_USB = $(F_CPU)
55
56 # Bootloader
57 #     This definition is optional, and if your keyboard supports multiple bootloaders of
58 #     different sizes, comment this out, and the correct address will be loaded
59 #     automatically (+60). See bootloader.mk for all options.
60 BOOTLOADER = halfkay
61
62 # Interrupt driven control endpoint task(+60)
63 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
64
65 # If you have Left LEDs (see
66 # https://geekhack.org/index.php?topic=22780.msg873819#msg873819 for
67 # details), include the following define:
68 # OPT_DEFS += -DLEFT_LEDS
69
70 # Build Options
71 #   comment out to disable the options.
72 #
73 BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration(+1000)
74 MOUSEKEY_ENABLE  = yes # Mouse keys(+4700)
75 EXTRAKEY_ENABLE  = yes # Audio control and System control(+450)
76 CONSOLE_ENABLE   = no  # Console for debug(+400)
77 COMMAND_ENABLE   = yes # Commands for debug and configuration
78 CUSTOM_MATRIX    = yes # Custom matrix file for the ErgoDox EZ
79 NKRO_ENABLE      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
80 UNICODE_ENABLE   = yes # Unicode
81 SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
82 SLEEP_LED_ENABLE = no
83 API_SYSEX_ENABLE = no
84 RGBLIGHT_ENABLE = yes
85 RGB_MATRIX_ENABLE = no # enable later
86 DEBOUNCE_TYPE = eager_pr
87
88 ifeq ($(strip $(RGB_MATRIX_ENABLE)), no)
89   SRC += i2c_master.c
90 endif
91
92
93 LAYOUTS = ergodox